2011-12-22 132 views
2

在jQuery或JS中,我需要计算我的父DIV中称为cont的DIV元素的数量?我在StackOverflow上看到类似的问题,并尝试了以下内容。jQuery/JS - 元素内的计数元素

<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); 
} 

孩子DIV是动态生成的,所以我需要在页面加载完成后对它们进行计数。我有的问题是我写的函数计数13 DIV,在这个例子中,应该只有4!任何帮助感激地接受..

+3

它显示4正确 - http://jsfiddle.net/QSurJ/ – 2011-12-22 01:03:25

+0

哇真的!我说13! – TheCarver 2011-12-22 01:06:07

+0

我正在做的不同是使用[body onload =“countPages()”] – TheCarver 2011-12-22 01:07:10

回答

4
console.log($("#cont div").length); 
+1

这表现要好得多:'$('div','#cont')'...... – 2011-12-22 01:40:13

+0

很高兴知道。谢谢 – 2011-12-22 01:45:27

+0

@ŠimeVidas:你错了。如果#id是选择器的第一部分,杰克的方式是最快的。参考:http://stackoverflow.com/questions/2421782/performance-of-jquery-selector-with-context – Interrobang 2011-12-22 01:53:39

1

试试这个

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

顺便说一句,这是jQuery的文档准备语法(反正是其中之一)。这只会在您的页面加载完成后触发。

3
var maindiv = document.getElementById('cont'); 
var count = maindiv.children.length; 
alert(count); 
-1

不需要在这里使用jQuery。如果你只需要知道childElements的数量,你可以使用node.childElementCount