2009-07-25 6 views
5

J'ai une liste dans un ul qui se trouve dans un répéteur ASP. La liste est définie pour déborder avec une barre de défilement et afficher uniquement 16 li à la fois. Y at-il une fonction de comptage jQuery que je peux utiliser qui me permettrait de sélectionner tous les «16ème» li et y ajouter une classe spécifique?Puis-je compter les éléments en utilisant jQuery?

La sélection de la dernière ne fonctionnera pas car la 16e div n'est pas la dernière div puisqu'elle est dans un répéteur.

Répondre

11

Oui il y a, c'est ce qu'on appelle :nth-child.

Exemple:

$("ul li:nth-child(16n)").addClass("sixteenth"); 
+0

Bon, je comprends. Mais je veux obtenir le "16ème", "32", etc ... Est-ce que cette fonction ferait cela? –

+0

Je l'ai modifié, oui ça va. Changez simplement (16) en (16n). –

+0

Parfait, c'est exactement ce que je cherchais. Merci! –

0

Si vous souhaitez appliquer la classe à chaque élément après le 16 e vous pouvez utiliser :gt(index) sélecteur.

$("ul li:gt(16)").addClass("CLASS_NAME"); 

rappelez-vous: gt,: lt etc Les sélecteurs utilisent l'index zéro.

pour 16 e sû vous pouvez utiliser :nth-child(index)

$("ul li:nth-child(16)").addClass("CLASS_NAME"); 

rappeler : nième enfant sélecteurs 1 pour utiliser la base premier élément.

+0

bien cette méthode ": nth-child (index)" ne sélectionnera que le 16ème li. J'en ai besoin pour saisir ensuite le 32ème, 48ème, ..... –

+0

Oui et pour cela http://stackoverflow.com/questions/1181113/can-i-count-elements-using-jquery/1181187#1181187 fonctionnera !! – TheVillageIdiot

+0

Alors va http://stackoverflow.com/questions/1181113/can-i-count-elements-using-jquery/1181114#1181114 - mais avec beaucoup moins de code :) –

1

Vous pouvez essayer une fonction .each:

$("ul li").each(function(index, domEle) { 
    if (index%16==0) { 
      $(domEle).addClass("CLASS_NAME"); 
    } 
}); 
+0

que représente domEle? –

+0

Cette option n'est-elle pas un peu lourde? jQuery fournit déjà la possibilité de faire ce qu'il veut * sans * itérer sur toute la liste! Voir ma réponse pour un exemple du sélecteur nth-child. –

+0

cela fonctionne, cependant. votre solution est, comment dites-vous, eleganter, tho :) – Jason

Questions connexes