Hi,
if(...getElementsByTagName("div")[n].className=="x")
Ich habe zwischenzeitlich eine andere Variante ausprobiert
var i=1;
var knoten = document.getElementById("haupt").getElementsByTagName("p")[2];
while (knoten.className != "n")
{
if (knoten.nodeName == "P")
{
var num = document.createTextNode(i.toString() + ". ");
knoten.insertBefore(num, knoten.firstChild);
i++;
}
if (knoten.nodeName == "DIV")
{
alert("DIV gefunden!");
var j = 1;
subknoten = knoten.firstChild;
while (subknoten != null)
{
var subnum = document.createTextNode(i.toString() + "." + j.toString() + " ");
alert(subknoten.nodeName);
subknoten.insertBefore(subnum, subknoten.firstChild);
j++;
subknoten = subknoten.nextSibling;
}
}
knoten = knoten.nextSibling;
}
Die <p>-Tags der oberen Hierarchieebene werden problemlos gefunden und korrekt nummeriert, bei den <p>-Tags der unteren Ebene (die innerhalb von <div>-Tags stehen, verhält sich das Programm merkwürdig: für "subknoten" wird als nodeName "#text" ausgegeben, nicht etwa "P". Folglich führt insertBefore zu einer Fehlermeldung, da Textknoten keine Kindknoten haben können... wieso ignoriert JavaScript hier die <p>-Tags innerhalb der <div>-Tags?
Bis bald im Khyberspace!
Yadgar