Ah, okay. You can write new CSS that resets the offending :before/:after pseudo-elements:
function resetPsuedo(el) {
    if (!el.id) el.id = makeId();
    var selector = "#" + el.id;
    var head = document.getElementsByTagName('head')[0],
    style = document.createElement('style'),
    rules = document.createTextNode(selector + ":before, " + selector + ":after { content: '' }");
    style.type = 'text/css';
    if(style.styleSheet)
        style.styleSheet.cssText = rules.nodeValue;
    else style.appendChild(rules);
    head.appendChild(style);
}
function makeId() {
    var text = "";
    var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
    for (var i=0; i < 15; i++)
        text += possible.charAt(Math.floor(Math.random() * possible.length));
    return text;
}
Assigning a random ID to the element you pass in (if it doesn't have one) allows you to hack-up inline styles—rather than accessing el.beforeStyle, you can use CSS selectors: el#rkhjr828t9g:before.
You may need to add more rules to fully reset the styles. jsFiddle: view me!
http://www.w3.org/TR/CSS21/generate.html#before-after-content
The :before and :after pseudo-elements interact with other boxes as
  if they were real elements inserted just inside their associated
  element.
For example, the following document fragment and style sheet:
<p> Text </p>                   p:before { display: block; content: 'Some'; }
...would render in exactly the same way as the following document
  fragment and style sheet:
<p><span>Some</span> Text </p>  span { display: block }
Similarly, the following document fragment and style sheet:
<h2> Header </h2>     h2:after { display: block; content: 'Thing'; }
...would render in exactly the same way as the following document
  fragment and style sheet:
<h2> Header <span>Thing</span></h2>   h2 { display: block; }
                                      span { display: block; }