2011-12-22 346 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