使用javascript计算元素的直接子元素

使用javascript计算元素的直接子元素,javascript,jquery,count,parent-child,Javascript,Jquery,Count,Parent Child,我可以得到一个元素的所有子元素的计数,但我似乎不能只针对直接的子元素。这是我目前的情况 var sectionCount = document.getElementById("window").getElementsByTagName("section").length; 我玩过其他东西和不同的语法,但我似乎不明白 jQuery的等价物是: var sectionCount = $("#window > section").length; 但是我只需要使用javascript即可。使用

我可以得到一个元素的所有子元素的计数,但我似乎不能只针对直接的子元素。这是我目前的情况

var sectionCount = document.getElementById("window").getElementsByTagName("section").length;
我玩过其他东西和不同的语法,但我似乎不明白

jQuery的等价物是:

var sectionCount = $("#window > section").length;

但是我只需要使用javascript即可。

使用DOM选择器接口()

如果需要向后兼容的解决方案,请循环通过
childNodes
并计算元素节点数

var w = document.getElementById('window');
var count = 0; // this will contain the total elements.
for (var i = 0; i < w.childNodes.length; i++) {
    var node = w.childNodes[i];
    if (node.nodeType == Node.ELEMENT_NODE && node.nodeName == "SECTION") {
        count++;
    }
}
var w=document.getElementById('window');
变量计数=0;//这将包含所有元素。
对于(var i=0;i
但是,这在史前环境中是不兼容的。伊恩。@Caspar-史前的lol,那不是很久以前的事了。为IE添加了一个解决方案。很抱歉这么晚才回复。我现在才意识到它实际上在IE中是错误的,它说“节点未定义”。它显示在“if”语句所在的行上。是否需要切换某些内容,或者是否需要执行某些操作来定义节点。将
node.ELEMENT\u node
替换为整数
1
。分别记录
node.nodeType
node.nodeName
的值,并查看它们是否匹配
1
“SECTION”
var w = document.getElementById('window');
var count = 0; // this will contain the total elements.
for (var i = 0; i < w.childNodes.length; i++) {
    var node = w.childNodes[i];
    if (node.nodeType == Node.ELEMENT_NODE && node.nodeName == "SECTION") {
        count++;
    }
}