查找元素是否无子女

时间:2013-02-08 22:04:02

标签: javascript

我有一个包含页面上所有元素的数组。在循环遍历数组时,如何测试元素是否为无子元素?我宁愿留在标准的JavaScript。这是伪代码解释它:

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

5 个答案:

答案 0 :(得分:2)

您可以使用返回布尔值的hasChildNodes方法

element.hasChildNodes(); 

答案 1 :(得分:0)

使用纯JS,您将测试elem.firstChild是否为null,使用jQuery,您可以使用elem.children()测试.length> 0

答案 2 :(得分:0)

您可以使用element.childNodes.length检索子节点数。如果它等于0,则该节点没有孩子。

答案 3 :(得分: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/

答案 4 :(得分:0)

如果数组很长,请尝试使用

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

它将计算一次长度。在前面的例子中,它计算每个循环中的arr.length。