Ya, .eq()lebih sesuai untuk pertanyaan OP. :eq()digunakan dalam parameter string ke $, sedangkan .eq()metode pada objek jQuery yang ada.
mjswensen
55
Aku bersumpah aku harus pergi dan mencari ini setiap . lajang . waktu .
ivarni
3
@ JoelWorsham Tergantung pada perilaku yang diinginkan. $('select').find('option').eq(n)pada dasarnya akan mengabaikan pengelompokan, dan mendapatkan semua opsi secara keseluruhan. Jika Anda menginginkannya per grup, sesuatu seperti ini diperlukan:$('select').find('optgroup').each(function() { $(this).find('option').eq(n)...; })
Dykam
4
"Mengapa tidak menelusuri halaman penyeleksi (pendek) terlebih dahulu?" - Karena "eq" adalah nama yang sangat buruk dan saya secara teratur melewatkannya karena eq bagi saya berarti perbandingan ....
Sedang mencari slice, tetapi tidak yakin bagaimana cara mencari. Terima kasih telah melampaui apa yang diperlukan dalam pertanyaan awal.
Samik R
4
Untuk orang-orang yang menemukan jawaban ini, satu hal yang perlu diperhatikan adalah bahwa pemilih anak ke-1 didasarkan pada 1: eq or .eq () berbasis 0
Sudhanshu Mishra
1
Anda harus menggunakan, .eq()bukan yang :eq()sebenarnya. Peningkatan kinerja sedikit.
Jika Anda sudah memiliki objek jquery dalam sebuah variabel, Anda juga bisa memperlakukannya sebagai array yang diindeks normal, tanpa menggunakan jquery:
var all_rows = $("tr");for(var i=0; i < all_rows.length; i++){var row = all_rows[i];//additionally, you can use it again in a jquery selector
$(row).css("background-color","black");}
Meskipun contoh di atas tidak berguna dengan cara apa pun, ini menggambarkan bagaimana Anda dapat memperlakukan objek yang dibuat oleh jquery sebagai array yang diindeks.
Benar, dan satu lagi petunjuk (semoga bermanfaat): Jika baris berisi daftar <select>elemen, dan Anda menginginkan elemen combobox yang dipilih, gunakan$(row).val();
Matt
2
Jika saya memahami pertanyaan Anda dengan benar, Anda selalu dapat membungkus fungsi get seperti:
Jadi, dari loop kode di atas dieksekusi dan kami ingin bidang tertentu untuk memilih untuk itu kita harus menggunakan pemilihan jQuery yang dapat memilih hanya elemen yang diharapkan dari loop di atas sehingga, kode akan
Untuk iterasi menggunakan pemilih tampaknya tidak masuk akal:
var some = $('...');for( i = some.length -1; i>=0;--i ){// Have to transform in a jquery object again://var item = $( some[ i ]);// use item at will// ...}
"$ (function () {" pertama kali jatuh, saya telah membuat fungsi anonim, yang dipecat secara otomatis. Di dalamnya, saya menemukan tiga orangtua div menggunakan saudara kandung. Kemudian saya mengulangi di semua 3 orangtua div dan memeriksa panjang setiap panjang anak-anak. Bagaimana saya dapat mengidentifikasi bahwa apakah div terakhir atau tidak di div induk. Sekarang saya memberitahukan html div terakhir dari setiap 3 induk div utama.
Sanjay Verma
Anda dapat mengedit jawaban Anda, alih-alih memberikan informasi dalam komentar :)
.eq()
bukan:eq()
?.eq()
lebih sesuai untuk pertanyaan OP.:eq()
digunakan dalam parameter string ke$
, sedangkan.eq()
metode pada objek jQuery yang ada.$('select').find('option').eq(n)
pada dasarnya akan mengabaikan pengelompokan, dan mendapatkan semua opsi secara keseluruhan. Jika Anda menginginkannya per grup, sesuatu seperti ini diperlukan:$('select').find('optgroup').each(function() { $(this).find('option').eq(n)...; })
Anda dapat menggunakan pemilih : eq , misalnya:
Atau fungsi eq (int) :
Juga, ingat bahwa indeks ini berbasis nol.
sumber
:nth()
pemilih - jangan dikacaukan dengan:nth-child()
jika Anda memiliki kontrol atas kueri yang membangun objek jQuery, gunakan
:eq()
Jika Anda tidak memiliki kendali atas itu (misalnya, sedang dilewatkan dari fungsi lain atau sesuatu), kemudian gunakan
.eq()
Atau jika Anda ingin bagian dari mereka (katakanlah, elemen ketiga, keempat dan kelima), gunakan
.slice()
sumber
.eq()
bukan yang:eq()
sebenarnya. Peningkatan kinerja sedikit.Saya pikir Anda bisa menggunakan ini
Ia menemukan li kedua di setiap ul yang cocok dan mencatatnya.
sumber
.eq () -Bilangan bulat yang menunjukkan posisi elemen berbasis-0.
Ex:
Pertimbangkan sebuah halaman dengan daftar sederhana di atasnya:
Kami dapat menerapkan metode ini ke sekumpulan item daftar:
Untuk informasi lebih lanjut: .eq ()
sumber
Jika Anda sudah memiliki objek jquery dalam sebuah variabel, Anda juga bisa memperlakukannya sebagai array yang diindeks normal, tanpa menggunakan jquery:
Meskipun contoh di atas tidak berguna dengan cara apa pun, ini menggambarkan bagaimana Anda dapat memperlakukan objek yang dibuat oleh jquery sebagai array yang diindeks.
sumber
<select>
elemen, dan Anda menginginkan elemen combobox yang dipilih, gunakan$(row).val();
Jika saya memahami pertanyaan Anda dengan benar, Anda selalu dapat membungkus fungsi get seperti:
sumber
eq()
memberi Anda gratis.Jika Anda ingin mengambil elemen / node atau tag tertentu dalam loop untuk misalnya
Jadi, dari loop kode di atas dieksekusi dan kami ingin bidang tertentu untuk memilih untuk itu kita harus menggunakan pemilihan jQuery yang dapat memilih hanya elemen yang diharapkan dari loop di atas sehingga, kode akan
misalnya
serta dengan metode lain
tetapi metode pertama lebih efisien bila
HTML <tag>
memiliki nama kelas yang unik.CATATAN: Metode kedua digunakan ketika mereka tidak ada nama kelas di elemen target atau node.
untuk lebih lanjut, ikuti https://api.jquery.com/eq/
sumber
Untuk iterasi menggunakan pemilih tampaknya tidak masuk akal:
sumber
Contoh Langsung untuk mengakses dan menghapus elemen ke-N dengan jQuery:
Saat dijalankan, ada dua item dalam daftar berurutan yang menunjukkan, Pertama, dan Ketiga. Yang kedua disembunyikan.
sumber
sumber