Dani82: Seltsames Verhalten von parentNode/innerHTML in einer Schleife

Beitrag lesen

Hallo alle zusammen,

den folgenden Code verwende ich, um vor jeden Link, dessen Ziel "google" enthält, einen Text voranzustellen. Das direkte Bearbeiten eines innerHTML ist zwar nicht die sauberste Lösung, weil der Aufbau der parentNodes auf der Seite aber immer derselbe ist, geht das problemlos.

  
var newHTML;  
var pos = -1;  
var iMax = document.getElementsByTagName("a").length;  
  
for(var i=0; i<iMax; i++) {  
  pos = document.getElementsByTagName("a")[i].href.indexOf('google');  
  if(pos>0) {  
    newHTML = "text" + document.getElementsByTagName("a")[i].parentNode.innerHTML;  
    document.getElementsByTagName("a")[i].parentNode.innerHTML = newHTML;  
    pos = -1;  
  }  
}  

Wenn ich nun aber nicht nur einen statischen Text voranstellen möchte, sondern den Inhalt des betroffenen Links selbst weiterverarbeite, dann funktioniert der Code nicht mehr:

  
newHTML = createHTML(document.getElementsByTagName("a")[i].href, "text", "text2") + document.getElementsByTagName("a")[i].parentNode.innerHTML;  

Wo der ursprüngliche Code noch jeden parentNode sowohl beim Auslesen als auch beim Schreiben korrekt anspricht, bleibe ich bei der Modifizierung immer beim ersten verwendeten parentNode hängen und das obwohl der Index [i] weiterhin wie vorher korrekt weiterläuft.

Hat da jemand von euch eine Idee was ich falsch mache und wieso beim modifizierten Code immer nur der erste verwendete parentNode verwendet wird, beziehungsweise was ich nicht machen darf?

Liebe Grüße,
Daniel