Javascript jQuery/JS-计算元素中的元素

Javascript jQuery/JS-计算元素中的元素,javascript,jquery,Javascript,Jquery,在jQuery或JS中,我需要计算父DIV中名为cont的DIV元素的数量?我在StackOverflow上看到过类似的问题,并尝试了以下方法 <div class="b-load" id="cont"> <div> <img src="page2.jpg" alt=""/> </div> <div> <img src="page3.jpg" alt="" /> </di

在jQuery或JS中,我需要计算父DIV中名为
cont
的DIV元素的数量?我在StackOverflow上看到过类似的问题,并尝试了以下方法

<div class="b-load" id="cont">
    <div>
    <img src="page2.jpg" alt=""/>
    </div>
    <div>
    <img src="page3.jpg" alt="" />
    </div>
    <div>
    <img src="page4.jpg" alt="" />
    </div>
    <div>
    <img src="page5.jpg" alt="" />
    </div>
</div>

function countPages() {
    var maindiv = document.getElementById('cont');
    var count = maindiv.getElementsByTagName('div').length;
    alert(count);
}

函数countPages(){
var maindiv=document.getElementById('cont');
var count=maindiv.getElementsByTagName('div').length;
警报(计数);
}
子DIV是动态生成的,因此我需要在页面完成加载后对它们进行计数。我的问题是我写的函数计数13个DIV,在这个例子中,应该只有4个!!感谢您的帮助。

试试这个

console.log($("#cont div").length);
$(function(){
   var mainDiv = $('#cont');
   var childDivCount = mainDiv.find('div').length;
   });

顺便说一句,这是jQuery用于document ready的语法(无论如何都是其中之一)。这将仅在页面完成加载后触发。

无需在此处使用jQuery。如果您只需要知道childElements的数量,可以使用node.childElementCount

它正确地显示了4-我所做的不同之处是使用[body onload=“countPages()”]我刚刚将getElementsByTagName('div')更改为getElementsByTagName('img')我得到了正确的数字,但我仍然很震惊,我得到了一个不同于小提琴示例的数字!!也许你的页面上有第二个元素,上面有
id=cont
?@ŠimeVidas:你错了。如果id是选择器的第一部分,那么Jake的方式是最快的。Ref:@Interrobang在该线程中接受的答案表明添加上下文可以提高性能。但是,在这个问题中没有提到
#foo div
选择器……公认的答案是,除了ID选择器之外,添加上下文可以提高性能,并且线程中还提供了一个JSPerf链接。
var maindiv = document.getElementById('cont');
var count = maindiv.children.length;
alert(count);