2010-09-15 19 views
2

J'ai besoin de compter la quantité de LI dans un niveau supérieur UL.jquery compter li au plus haut niveau UL

Mon menu principal contient 6 éléments mais cela peut changer de façon dynamique. Je pensais que cela pourrait fonctionner, mais il compte toujours le li des enfants aussi :(

var numTopNavItems = 0; 

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

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

Toutes les idées pour lesquelles cela pourrait être?

Merci, James

+0

Il devrait fonctionner si vous modifiez le '+ = I' à' + = 1'. Quel est votre HTML? – kennytm

Répondre

4

La façon de compter le nombre de élément adapté est

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

la méthode devrait fonctionner aussi longtemps que seul le niveau supérieur <ul> a la classe rmHorizontal. Dans le cas contraire, essayez le sélecteur

"ul.rmHorizontal:first > li" 

à la place.

1

Got it merci:

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

Cela comptera tous les enfants du 'ul', pas seulement le' li'. Oui, les seules choses qui devraient être les enfants directs d'un ul sont les balises li, mais certaines pages ne peuvent pas honorer cela. – Piskvor

+0

Merci Piskvor, j'ai utilisé l'exemple ci-dessous;) –