getElementsByTagName liefert eine Liste von Einträgen, des übergebenen Tagnamen, zurück. Diese Liste wollte ich durchgehen und bestimmte Elemente ersetzen. Problem war, nur jedes 2te Element wurde ersetzt.
In der Mozilla Doku fand ich dann den Ursprung des Problems:
https://developer.mozilla.org/En/DOM:element.getElementsByTagName
elements = element.getElementsByTagName(tagName)
elements is a live NodeList of found elements in the order they appear in the tree.
Ergo, die Liste ist dynamisch. Also meine Liste wurde kleiner während ich die Elemente löschte ... muss man erster einmal wissen.
Lösung des Problems:
Die Elemente in ein temporäres Array rein haun und dann dieses durchgehen :-)
var links = document.getElementById('irgendwo').getElementsByTagName('a'); var list = []; // Statische Liste for (i=0; i < links.length; i++) { list.push(links[i]); };
list beinhaltet nun alle A Elemente.
Ansonsten
Aber wieso gibt es nur eine Schraubenmutter und keinen Schraubenvater