Christian: ChildNodes auswählen und CSS ändern

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 !

:)

  1. 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

    --
    sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
    debian/rules
    1. Hi Mathias

      Empfehlung hierbei: nutze die rows- und cells-HTMLCollections.

      Merci !!!
      Ich werde mir das mal anschauen :)