Di jQuery bagaimana cara menggunakan pemilih untuk mengakses semua kecuali elemen pertama? Jadi dalam kode berikut hanya elemen kedua dan ketiga yang akan diakses. Saya tahu saya bisa mengaksesnya secara manual tetapi mungkin ada sejumlah elemen jadi itu tidak mungkin. Terima kasih.
<div class='test'></div>
<div class='test'></div>
<div class='test'></div>
jquery
jquery-selectors
usertest
sumber
sumber
Jawaban:
atau:
atau:
atau:
atau: (sesuai komentar @Jordan Lev):
dan seterusnya.
Lihat:
sumber
$("li").not(":eq(0)")
tampaknya baik.$("div.test:first").siblings().hide()
. Merasa bermanfaat bagi saya untuk memulai dengan elemen pertama, lalu sembunyikan semua saudara kandungnya meskipun mereka tidak ditemukan dengan pemilih umum.$("div.test").slice(1).hide();
terlihat paling memaafkan dalam hal seleksi kosong ...Karena cara penyeleksi jQuery dievaluasi dari kanan ke kiri , cukup mudah dibaca
li:not(:first)
diperlambat oleh evaluasi itu.Solusi yang sama cepat dan mudah dibaca menggunakan versi fungsi
.not(":first")
:misalnya
JSPerf: http://jsperf.com/fastest-way-to-select-all-expect-the-first-one/6
Ini hanya beberapa poin persentase lebih lambat daripada
slice(1)
, tetapi sangat mudah dibaca sebagai "Saya ingin semua kecuali yang pertama".sumber
Jawaban saya terfokus pada kasus panjang yang berasal dari kasus yang terlihat di atas.
Misalkan Anda memiliki sekelompok elemen dari mana Anda ingin menyembunyikan elemen anak kecuali pertama. Sebagai contoh:
Kami ingin menyembunyikan semua
.child
elemen di setiap grup. Jadi ini tidak akan membantu karena akan menyembunyikan semua.child
elemen kecualivisible#1
:Solusinya (dalam kasus yang diperluas ini) adalah:
sumber
sumber