Dans jQuery, comment utiliser un sélecteur pour accéder à tous les éléments sauf le premier? Ainsi, dans le code suivant, seuls les deuxième et troisième éléments seraient accessibles. Je sais que je peux y accéder manuellement mais il pourrait y avoir un certain nombre d'éléments donc ce n'est pas possible. Merci.
<div class='test'></div>
<div class='test'></div>
<div class='test'></div>
jquery
jquery-selectors
usertest
la source
la source
Réponses:
ou:
ou:
ou:
ou: (selon le commentaire de @Jordan Lev):
etc.
Voir:
la source
$("li").not(":eq(0)")
semble bon.$("div.test:first").siblings().hide()
. J'ai trouvé utile de commencer par le premier élément, puis de masquer tous ses frères et sœurs même s'ils ne sont pas trouvés avec un sélecteur commun.$("div.test").slice(1).hide();
semble plus indulgent en cas de sélection vide ...En raison de la façon dont les sélecteurs jQuery sont évalués de droite à gauche , la lisibilité
li:not(:first)
est ralentie par cette évaluation.Une solution tout aussi rapide et facile à lire utilise la version de fonction
.not(":first")
:par exemple
JSPerf: http://jsperf.com/fastest-way-to-select-all-expect-the-first-one/6
Ceci n'est que de quelques points de pourcentage plus lent que
slice(1)
, mais est très lisible car "je veux tout sauf le premier".la source
Ma réponse se concentre sur un cas étendu dérivé de celui exposé en haut.
Supposons que vous ayez un groupe d'éléments dont vous souhaitez masquer les éléments enfants, sauf en premier. Par exemple:
Nous voulons masquer tous les
.child
éléments de chaque groupe. Donc, cela n'aidera pas car masquera tous les.child
éléments saufvisible#1
:La solution (dans ce cas étendu) sera:
la source
la source