$(t).html()
kembali
<td>test1</td><td>test2</td>
Saya ingin mengambil yang kedua td
dari $(t)
objek. Saya mencari solusi tetapi tidak ada yang berhasil. Adakah yang tahu bagaimana cara mendapatkan elemen kedua?
jquery
jquery-selectors
Suara positif
sumber
sumber
$(t).children('td').eq(1)
dan$(t).children()[1]
find()
metode jQuery? Seperti$(t).find('td').eq(1)
untuk mendapatkan yang kedua<td>
, jikat
, katakanlah, sebuah meja dan saya perlu melihat lebih dari 1 simpul?.children('td').eq(1)
bekerja karena suatu alasan, tetapi.find('td').eq(1)
bekerja dengan baik.Inilah solusi yang mungkin lebih jelas untuk dibaca dalam kode:
Untuk mendapatkan anak ke-2 dari daftar yang belum dipesan:
Dan contoh yang lebih terperinci: Kode ini mendapatkan teks atribut 'title' dari elemen anak ke-2 UL yang diidentifikasi sebagai 'my_list':
Dalam contoh kedua ini, Anda dapat menyingkirkan 'ul' di awal pemilih, karena berlebihan, karena ID harus unik untuk satu halaman. Itu ada di sana hanya untuk menambah kejelasan pada contoh.
Catatan tentang Kinerja dan Memori , dua contoh ini adalah kinerja yang baik, karena mereka tidak membuat jquery menyimpan daftar elemen ul yang harus disaring sesudahnya.
sumber
ul
agar kami tidak perlu mencarinya.Bagaimana dengan ini:
PEMBARUAN UTAMA:
Terlepas dari betapa cantiknya jawaban itu, Anda juga harus memikirkan kinerja kode. Oleh karena itu, juga relevan untuk mengetahui apa sebenarnya yang ada dalam
$(t)
variabel. Apakah array<TD>
atau<TR>
node dengan beberapa<TD>s
di dalamnya? Untuk mengilustrasikan poin lebih lanjut, lihat skor jsPerf pada<ul>
daftar dengan 50<li>
anak:http://jsperf.com/second-child-selector
The
$(t).first().next()
metode adalah yang tercepat di sini, jauh.Tetapi, di sisi lain, jika Anda mengambil
<tr>
simpul dan menemukan<td>
anak - anak dan menjalankan tes yang sama, hasilnya tidak akan sama.Semoga ini bisa membantu. :)
sumber
Saya tidak melihatnya disebutkan di sini, tetapi Anda juga dapat menggunakan penyeleksi spec CSS. Lihat dokumen
sumber
Coba ini:
atau
sumber
Selain menggunakan metode jQuery, Anda dapat menggunakan
cells
koleksi asli yang diberikan<tr>
kepada Anda.Dengan asumsi
t
adalah elemen DOM, Anda bisa melewati pembuatan objek jQuery.sumber
Sangat mengejutkan melihat bahwa tidak ada yang menyebutkan cara JS asli untuk melakukan ini ..
Tanpa jQuery:
Cukup akses
children
properti dari elemen induk. Ini akan mengembalikan HTMLCollection langsung dari elemen anak-anak yang dapat diakses dengan indeks. Jika Anda ingin mendapatkan anak kedua:Dalam kasus Anda, sesuatu seperti ini bisa berfungsi: (contoh)
Anda juga dapat menggunakan kombinasi pemilih CSS3 /
querySelector()
dan memanfaatkan:nth-of-type()
. Metode ini dapat berfungsi lebih baik dalam beberapa kasus, karena Anda juga dapat menentukan jenis elemen, dalam hal initd:nth-of-type(2)
(contoh)sumber
Gunakan
.find()
metode$(t).find("td:eq(1)");
td:eq(x) // x is index of child you want to retrieve. eq(1) means equal to 1. //1 denote second element
sumber
Anda dapat menggunakan dua metode dalam jQuery seperti yang diberikan di bawah ini-
Menggunakan jQuery: nth-child Selector Anda telah meletakkan posisi elemen sebagai argumennya yaitu 2 saat Anda ingin memilih elemen li kedua.
Menggunakan jQuery: eq () Selector
Jika Anda ingin mendapatkan elemen yang tepat, Anda harus menentukan nilai indeks item. Elemen daftar dimulai dengan indeks 0. Untuk memilih elemen 2 li, Anda harus menggunakan 2 sebagai argumen.
Lihat Contoh: Dapatkan Elemen Anak Kedua Daftar di jQuery
sumber