JS - Anzahl der Zeilen einer Tabelle
Max
- javascript
Hallo!
Ich habe versucht, mit folgendem Code die Anzahl der Zeilen einer Tabelle via JS herauszufinden:
document.getElementsByTagName('table')[0].childNodes.length
Leider funktioniert das so nicht, es wird nur 1 Kindknoten gefunden.
Wie kann ich das Problem lösen?
Danke im Voraus,
Max
Hallo Max.
Ich habe versucht, mit folgendem Code die Anzahl der Zeilen einer Tabelle via JS herauszufinden:
document.getElementsByTagName('table')[0].childNodes.length
Leider funktioniert das so nicht, es wird nur 1 Kindknoten gefunden.
Das Element table hat ja auch (normalerweise) nur ein Kindelement: tbody.
Einen schönen Montag noch.
Gruß, Ashura
Hallo,
Ich habe versucht, mit folgendem Code die Anzahl der Zeilen einer Tabelle via JS herauszufinden:
document.getElementsByTagName('table')[0].childNodes.length
Leider funktioniert das so nicht, es wird nur 1 Kindknoten gefunden.
Das Element table hat ja auch (normalerweise) nur ein Kindelement: tbody.
Ja, genauer gesagt:
Das tbody-Element ist (in HTML und HTML-kompatiblem XHTML) immer da, auch wenn es im Quellcode nicht drinsteht. Denn sein Start- und sein End-Tag können weggelassen werden. Der Browser fügt dieses Element also immer hinzu. Aus dem Code <table><tr><td>bla</td></tr></table> wird im DOM-Baum table → tbody → tr → td → »bla«.
Wenn man auf alle tr-Elemente zugreifen will, kann man also notieren:
tabellenelement.getElementsByTagName("tr")
oder einfacher gemäß dem HTML-spezifischen DOM
tabellenelement.rows
Das sind alles »Collections«, also haben sie eine length-Eigenschaft.
tabellenelement.tBodies[0].childNodes ginge auch, allerdings muss man dabei beachten, dass manche Browser Whitespace (Zeilenumbrüche, Leerzeichen, Tabulatoren usw.) als Textknoten betrachten. An wenigstens empfehlenswert ist daher tabellenelement.firstChild.childNodes u.ä. Dabei kann man sich nicht sicher sein, ob firstChild auf das tbody-Element zeigt.
tabellenelement.tBodies[0].rows wäre eine weitere Möglichkeit, wenn man mögliche tr-Elemente in thead und tfoot ignorieren will.
Mathias