tmpNode.textContent = replaceText(tmpNode[0].textContent); function replaceText(text) { var stringObj = new String(text); stringObj = stringObj.replace(/\040&\040/, "<span style=\"font-size: 80%\"> & </span>"); return stringObj.replace(/\040([ąćęóńłżź\d\w]{1,2}){1}\040/gi, ' $1_'); }
i zamieniam sobie ampersand na mniejszy, jednak na stronie pojawia mi sie kod HTML. Czyli jak miałem:
Cytat
Hi Ann & Monik
To po zmianie widzę:
Cytat
Hi Ann <span style="font-size: 80%"> & </span> Monik
Potrzebuję zmieniać same teksty bez kodu HTML bo w kodzie html czasem występują ampersandy
Poniżej do celów poglądowych cały kod JS
var spans = document.getElementById('rules').getElementsByTagName('span'); function replaceText(text) { var stringObj = new String(text); stringObj = stringObj.replace(/\040&\040/, "<span style=\"font-size: 80%\"> & </span>"); return stringObj.replace(/\040([ąćęóńłżź\d\w]{1,2}){1}\040/gi, ' $1_'); } function replaceTextInDomElements(elements, lvl) { var elementsLength = elements.length; var tmpNode = null; for (var i=0; i< elementsLength; i++) { tmpNode = elements[i].childNodes; if (typeof tmpNode[0] != 'undefined' && typeof tmpNode[0].textContent != 'undefined') { tmpNode[0].textContent = replaceText(tmpNode[0].textContent); } if (tmpNode.length > 1) { replaceTextInDomElements(tmpNode, (lvl+1)); } } } replaceTextInDomElements(spans, 0);