2013-02-08 48 views
1

我有一個數組,其中包含頁面上的所有元素。我如何測試一個元素在循環數組時是否無子?我寧願留在標準的JavaScript。下面是僞代碼來解釋它:查找元素是否無子女

for each element in elementlist: 
    if element is childless: 
     do something 
    else: 
     do something different 
+2

你是什麼意思的「無子」?你認爲文本節點是否爲子元素? – VisioN 2013-02-08 22:05:25

回答

0

純JS,你會測試是否elem.firstChild爲null,使用jQuery你可以用elem.children測試()長度> 0

0

可以檢索子節點的數量爲element.childNodes.length。如果它等於0,則該節點是無子節點。

0

這是一個簡單的解決方案和演示。這包括具有文本節點的子元素。

var arr = [document.getElementById("a1"), 
      document.getElementById("a2"), 
      document.getElementById("a3"), 
      document.getElementById("a4")]; 

var isChildless = function(ele){ 
    return ele.childNodes.length <= 0; 
} 

for (var x = 0; x < arr.length; x++){ 
    console.log(isChildless(arr[x])); 
} 

http://jsfiddle.net/HTbuB/1/

0

如果數組是長嘗試使用

var z=arr.length; 
for (var x = 0; x < z ; x += 1){ 
console.log(isChildless(arr[x])); 

將在計數長度。在前面的例子中,它在每個循環中計算arr.length。