I det tilfælde, du f.eks. kan have
title="DKK 0,00" i din kode, og du gerne vil have dette skiftet, bør du bruge koden i indlægget #15. Men
kun hvis du
skal bruge denne feature.
Ellers bør du bruge denne, som ikke overflødigt leder i attributter:
function setEvent(oObj, sEvnt, fn) {
if (oObj.addEventListener) oObj.addEventListener(sEvnt, fn, false);
else if (oObj.attachEvent) oObj.attachEvent("on"+sEvnt, fn);
else oObj["on"+sEvnt] = fn;
}
function searchAndReplace(sStr2find, sReplace, oSearchIn) {
var aNodes = oSearchIn.childNodes, oTmp;
var oRX = new RegExp(sStr2find, "gi");
for (var i=aNodes.length-1; i>=0; i--) {
oTmp = aNodes[i];
switch (oTmp.nodeType) {
case 1:
searchAndReplace(sStr2find, sReplace, oTmp)
break;
case 3:
oTmp.nodeValue = oTmp.nodeValue.replace(oRX, sReplace);
break;
}
}
}
function init() {
searchAndReplace("DKK 0,00", "Test", document.getElementsByTagName("body")[0]);
}
setEvent(window, "load", init);
PS: Hvis du finder mine for-løkker 'mærkelige', skyldes det igen performance optimering. Hvis man lader en løkke køre baglæns, afvikler den en hel del hurtigere (= bruger mindre kræfter), end en løkke, der løber forlæns, og som ellers udfører det samme arbejde.
Det kan virke som flueknebberi - og det er det vel også - men hvis du har et stort DOM træ (meget indhold med mange nestede elementer), kommer det hurtigt til at betyde noget ved denne slags rekursive handlinger ;o)