我有一個數組,其中包含頁面上的所有元素。我如何測試一個元素在循環數組時是否無子?我寧願留在標準的JavaScript。下面是僞代碼來解釋它:查找元素是否無子女
for each element in elementlist:
if element is childless:
do something
else:
do something different
我有一個數組,其中包含頁面上的所有元素。我如何測試一個元素在循環數組時是否無子?我寧願留在標準的JavaScript。下面是僞代碼來解釋它:查找元素是否無子女
for each element in elementlist:
if element is childless:
do something
else:
do something different
您可以使用hasChildNodes方法返回boolean
element.hasChildNodes();
純JS,你會測試是否elem.firstChild爲null,使用jQuery你可以用elem.children測試()長度> 0
可以檢索子節點的數量爲element.childNodes.length
。如果它等於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]));
}
如果數組是長嘗試使用
var z=arr.length;
for (var x = 0; x < z ; x += 1){
console.log(isChildless(arr[x]));
將在計數長度。在前面的例子中,它在每個循環中計算arr.length。
你是什麼意思的「無子」?你認爲文本節點是否爲子元素? – VisioN 2013-02-08 22:05:25