2010-09-15 101 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