我有一个包含页面上所有元素的数组。在循环遍历数组时,如何测试元素是否为无子元素?我宁愿留在标准的JavaScript。这是伪代码解释它:
for each element in elementlist:
if element is childless:
do something
else:
do something different
答案 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]));
}
答案 4 :(得分:0)
如果数组很长,请尝试使用
var z=arr.length;
for (var x = 0; x < z ; x += 1){
console.log(isChildless(arr[x]));
它将计算一次长度。在前面的例子中,它计算每个循环中的arr.length。