molily: Anzahl Childs unverständlich!!

Beitrag lesen

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