ChildNodes auswählen und CSS ändern
Christian
- javascript
Hallo,
ich bastel grade zum ersten mal an der DOM / Node - Struktur.
Ich komme aber noch nciht wirklich weiter...
Ich möchte eine Tabelle mit einem Script absuchen lassen, das automatisch alle <td>s überprüft, und wenn eine bestimmte class gesetzt ist, diese durch eine andere ersetzt.
Letzteres ist denk ich nicht so das Problem - eher die Frage, wie er mir alle ChildNodes der <table> absucht.
Eine Testausgabe:
var Knoten = document.getElementById("Tabelle").firstChild;
while (Knoten != null) {
document.write("Einen Knoten mit dem Namen <b>" + Knoten.nodeName + "</b><br>");
document.write("... mit dem Typ <b>" + Knoten.nodeType + "</b><br>");
document.write("... mit dem Value <b>" + Knoten.nodeValue + "</b><br>");
Knoten = Knoten.nextSibling;
}
ergab, dass leider irgendwie nicht die Kinder der <tr> und <td> ausgewertet werden, also nur die DIREKTEN Kinder.
Und wieso wird eigentlich bei folgender Struktur:
<div>
<div> ..... </div>
<div> ..... </div>
</div>
bei obiger Abfrage folgendes ausgegeben:
Knoten mit dem Namen: #text
Knoten mit dem Namen: #DIV
Knoten mit dem Namen: #text
Knoten mit dem Namen: #DIV
Knoten mit dem Namen: #text
??? Woher kommen die Text-Knoten?
Bin noch etwas verwirrt hier....
Danke für eure Antworten !
:)
Hallo Christian.
Ich möchte eine Tabelle mit einem Script absuchen lassen, das automatisch alle <td>s überprüft, und wenn eine bestimmte class gesetzt ist, diese durch eine andere ersetzt.
Empfehlung hierbei: nutze die rows- und cells-HTMLCollections.
var Knoten = document.getElementById("Tabelle").firstChild;
while (Knoten != null) {
document.write("Einen Knoten mit dem Namen <b>" + Knoten.nodeName + "</b><br>");
document.write("... mit dem Typ <b>" + Knoten.nodeType + "</b><br>");
document.write("... mit dem Value <b>" + Knoten.nodeValue + "</b><br>");
Knoten = Knoten.nextSibling;
}
>
> ergab, dass leider irgendwie nicht die Kinder der <tr> und <td> ausgewertet werden, also nur die DIREKTEN Kinder.
Logisch, du willst ja laut deinem Code auch nur alle Knoten, die auf der ersten Hierarchieebene im Tabellenelement enthalten sind.
> Und wieso wird eigentlich bei folgender Struktur:
>
> ~~~html
<div>
> <div> ..... </div>
> <div> ..... </div>
> </div>
bei obiger Abfrage folgendes ausgegeben:
Knoten mit dem Namen: #text
Zeilenumbruch …
Knoten mit dem Namen: #DIV
<div/> …
Knoten mit dem Namen: #text
Zeilenumbruch …
Knoten mit dem Namen: #DIV
<div/> …
Knoten mit dem Namen: #text
Zeilenumbruch …
Einen schönen Mittwoch noch.
Gruß, Mathias