function anzahl_zeilen()
{
var zeilen_gesamt = document.getElementById('szenen').childNodes.length;
document.getElementById("anz").value = zeilen_gesamt;
var zeilen_tats = 0;
for (i=0;i<zeilen_gesamt;i++)
{
if (document.getElementById("szenen").childNodes[i].nodeType == 3)
{
zeilen_tats = zeilen_tats+1;
}
}
document.getElementById('anz_tats').value = zeilen_tats;
}
Manche Browser kennen childElementCount aus Element Traversal. Mit einer Feature-Abfrage kann man die Sache in einem Eigenschaftszugriff lösen. Für die restlichen Browser wird weiterhin über childNodes iteriert
function childElementCount (element) {
// Unterstützt der Browser schon childElementCount?
if ('childElementCount' in element) {
return element.childElementCount;
}
var childNodes = element.childNodes,
l = childNodes.length,
childElementCount = 0,
i;
for (i = 0; i < l; i++) {
if (childNodes[i].nodeType == 1) {
childElementCount++;
}
}
return childElementCount;
}
var szenen = document.getElementById('szenen');
var zeilen = childElementCount(szenen);
Noch einfacher geht es allerdings über die http://de.selfhtml.org/javascript/objekte/htmlelemente.htm#tbody@title=rows-Eigenschaft des tbody-Elements:
var szenen = document.getElementById('szenen');
var zeilen = szenen.rows.length
~~~;
Das spart einem die ganze Arbeit.
Mathias