2010-09-15 104 views
2

我需要計算頂級UL中LI的數量。jquery count li的頂級UL

我的頂級菜單中有6個項目,但這可能會動態更改。我認爲這可以工作,但它仍然是數着孩子裏的太:(

var numTopNavItems = 0; 

$("ul.rmHorizontal > li").each(function (i) { 

    numTopNavItems += i; 
    alert("numTopNavItems = " + numTopNavItems); 
}); 

任何想法,這可能是爲什麼?

謝謝, 詹姆斯

+0

如果你改變了'+ = i'到'+ = 1'它應該工作。什麼是您的HTML? – kennytm 2010-09-15 13:30:12

回答

4

正確的方法來計算的數匹配的元素是

var numTopNavItems = $("ul.rmHorizontal > li").length; 
alert("numTopNavItems = " + numTopNavItems); 

的方法應該工作,只要僅頂層<ul>rmHorizontal類。如果沒有,嘗試選擇器

"ul.rmHorizontal:first > li" 

改爲。

1

明白了感謝:

var count = $("#myList").children().length; 
+0

這將計算'ul'的所有孩子,而不僅僅是'li'。是的,*應該是* ul的直接孩子的唯一的東西是'li'標籤,但有些頁面可能不會承認這一點。 – Piskvor 2010-09-15 13:34:17

+0

謝謝Piskvor,我用下面的例子;) – 2010-09-27 09:58:36