W jQuery jak używać selektora, aby uzyskać dostęp do wszystkich elementów oprócz pierwszego? Tak więc w poniższym kodzie będzie dostępny tylko drugi i trzeci element. Wiem, że mogę uzyskać do nich dostęp ręcznie, ale może istnieć dowolna liczba elementów, więc nie jest to możliwe. Dzięki.
<div class='test'></div>
<div class='test'></div>
<div class='test'></div>
jquery
jquery-selectors
test użytkownika
źródło
źródło
Odpowiedzi:
lub:
lub:
lub:
lub: (zgodnie z komentarzem @Jordan Lev):
i tak dalej.
Widzieć:
źródło
$("li").not(":eq(0)")
wydaje się być dobry.$("div.test:first").siblings().hide()
. Przydało mi się zacząć od pierwszego elementu, a następnie ukryć wszystkie jego rodzeństwo, nawet jeśli nie można ich znaleźć za pomocą wspólnego selektora.$("div.test").slice(1).hide();
wygląda najbardziej wybaczająco w przypadku pustej selekcji ...Ze względu na sposób, w jaki selektory jQuery są oceniane od prawej do lewej ,
li:not(:first)
ocena jest spowalniana przez tę ocenę.Równie szybkie i łatwe do odczytania rozwiązanie wykorzystuje wersję funkcji
.not(":first")
:na przykład
JSPerf: http://jsperf.com/fastest-way-to-select-all-expect-the-first-one/6
Jest to tylko kilka punktów procentowych wolniejszych niż
slice(1)
, ale jest bardzo czytelne jako „Chcę wszystkich oprócz pierwszego”.źródło
Moja odpowiedź koncentruje się na rozszerzonej sprawie wywodzącej się z tej ujawnionej u góry.
Załóżmy, że masz grupę elementów, przed którymi chcesz ukryć elementy potomne oprócz pierwszej. Jako przykład:
Chcemy ukryć wszystkie
.child
elementy w każdej grupie. To nie pomoże, ponieważ ukryje wszystkie.child
elementy opróczvisible#1
:Rozwiązaniem (w tym rozszerzonym przypadku) będzie:
źródło
źródło