childrenNodes 属性包括所有类型的节点:TEXT_NODE、ELEMENT_NODE、COMMEN_NODE 等。
您需要计算元素的数量,这是一个基于 DOM的示例解决方案,它应该适用于所有引擎:
var temp = document.getElementById('element').parentNode;
var children = temp.childNodes;
console.log(children.length); // 7
function countElements(children) {
var count=0;
for (var i=0, m=children.length; i<m; i++)
if (children[i].nodeType===document.ELEMENT_NODE)
count++;
return count;
}
console.info(countElements (children)); // 3
编辑
同样,如果您希望一个函数仅使用 DOM 检索所有子元素,这里有一个函数:
function childElements(node) {
var elems = new Array();
var children = node.childNodes;
for (var i=0,i < children.length ; i++) {
if (children[i].nodeType===document.ELEMENT_NODE) {
elems.push(children[i]);
return elems;
}
}
}
console.info(childElements(temp).length); //3