Hallo Ashura.
Hast du dir zwischenzeitlich einmal links[i].parentNode.tagName ausgeben lassen? (Mit alert())
Habe es vor und nach replaceChild eingefügt:
alert("1 " + links[i].parentNode.tagName);
links[i].parentNode.replaceChild(meinDiv,links[i]);
alert("2 " + meinDiv.parentNode.tagName);
Folgendes ist nun zu beobachten:
Alert: 1 TD -> (Bild 1 ist noch da)
Alert: 2 TD -> (Bild 1 weg, Testdiv 1 steht da)
Alert: 1 TD -> (Testdiv 1 steht immer noch da, Bild 2 ist noch da)
Alert: 2 TD -> (Testdiv 1 weg, Bild 2 weg, Testdiv 2 steht da)
Das Skript ersetzt also wie gewünscht, nur "verschwindet" das <div>-Element aus irgendeinem Grund dann wieder komplett.
Kann man sich das ganze einmal online betrachten?
Geht leider nur lokal, da das Javascript über die Erweiterung von Firefox, nämlich greasemonkey läuft. Ich wende das Skript auf ein vBulletin Forum an.
Hab zwischendurch ein Bookmarklet gefunden, welches alle Grafiken einer Seite durch ihr alt-Attribut ersetzt. Das funktioniert fehlerfrei:
function toArray (c)
{
var a, k;
a=new Array;
for (k=0; k<c.length; ++k)
a[k]=c[k];
return a;
}
var images, img, altText;
images=toArray(document.images);
for (var i=0; i<images.length; ++i)
{
img=images[i];
altText=document.createTextNode(img.alt);
img.parentNode.replaceChild(altText, img)
}
Leider sehe ich nicht, was das Skript so großartig anderes macht als das, an dem wir hier rumbasteln.
Gruß,
Mario