2010-09-15 4 views
2

Мне нужно подсчитать количество LI на верхнем уровне UL.jquery count li's на верхнем уровне UL

В моем меню верхнего уровня есть 6 элементов, но это может динамически меняться. Я думал, что это может работать, но он по-прежнему считая тоже :(

var numTopNavItems = 0; 

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

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

Любые идеи дочернего Ли, почему это может быть?

Спасибо, Джеймс

+0

Он должен работать, если вы измените '+ = i' к' + = 1'. Каков ваш HTML? – kennytm

ответ

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

+0

Спасибо Piskvor, я использовал приведенный ниже пример;) –

Смежные вопросы