Wie verwende ich in jQuery einen Selektor, um auf alle Elemente außer dem ersten eines Elements zuzugreifen? Im folgenden Code würde also nur auf das zweite und dritte Element zugegriffen. Ich weiß, dass ich manuell darauf zugreifen kann, aber es kann eine beliebige Anzahl von Elementen geben, so dass dies nicht möglich ist. Vielen Dank.
<div class='test'></div>
<div class='test'></div>
<div class='test'></div>
jquery
jquery-selectors
Usertest
quelle
quelle
Antworten:
oder:
oder:
oder:
oder: (gemäß dem Kommentar von @Jordan Lev):
und so weiter.
Sehen:
quelle
$("li").not(":eq(0)")
scheint dies gut zu sein.$("div.test:first").siblings().hide()
. Ich fand es nützlich, mit dem ersten Element zu beginnen und dann alle seine Geschwister auszublenden, auch wenn sie nicht mit einem gemeinsamen Selektor gefunden wurden.$("div.test").slice(1).hide();
sieht bei leerer Auswahl am verzeihendsten aus ...Aufgrund der Art und Weise, wie jQuery-Selektoren von rechts nach links ausgewertet werden , wird die Lesbarkeit
li:not(:first)
durch diese Auswertung verlangsamt.Eine ebenso schnelle und einfach zu lesende Lösung ist die Verwendung der Funktionsversion
.not(":first")
:z.B
JSPerf: http://jsperf.com/fastest-way-to-select-all-expect-the-first-one/6
Dies ist nur wenige Prozentpunkte langsamer als
slice(1)
, aber es ist sehr gut lesbar als "Ich möchte alle außer dem ersten".quelle
Meine Antwort konzentriert sich auf einen erweiterten Fall, der von dem oben belichteten abgeleitet ist.
Angenommen, Sie haben eine Gruppe von Elementen, vor denen Sie die untergeordneten Elemente außer zuerst ausblenden möchten. Als Beispiel:
Wir wollen alle
.child
Elemente in jeder Gruppe ausblenden . Dies wird also nicht helfen, da alle.child
Elemente außervisible#1
:Die Lösung (in diesem erweiterten Fall) lautet:
quelle
quelle