Saya memiliki struktur tabel seperti ini:
<table1>
<tbody>
<tr>
<td></td>
...
<td>
<table2>
<tbody>
<tr>
<td></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
Dalam javascript, saya memiliki variabel tbl
dengan nilai $(table1)
, dan kemudian saya ingin mendapatkan semua elemen anak langsung (tr) <tbody>
dari table1
. Kode saya adalah:
$('tr', tb1)
Rupanya itu mengembalikan semua <tr>
elemen dalam tabel1 dan tabel2. Saya pikir saya bisa bertahan
$('tr', tb1).not(function(){return $(this).parent().parent()[0] != tb1;})
atau logika semacam ini.
Saya tahu $('table1 > tbody > tr')
bisa mendapatkan anak langsung tr
. Sayangnya saya tidak bisa menggunakan ini.
Ada yang punya ide bagus tentang ini?
Terima kasih.
jquery
parent-child
Jason Li
sumber
sumber
>
) tanpa menentukan apa pun di depannya. Terima kasih.Seperti yang disebutkan @jave.web di komentar
Untuk mencari melalui turunan langsung dari suatu elemen digunakan
.children()
. Itu hanya akan mencari melalui anak-anak langsung dan tidak melintasi lebih dalam. http://api.jquery.com/children/sumber
Inilah alasan mengapa seseorang harus berhati-hati dengan tabel bersarang. Saya sangat berharap Anda menggunakannya untuk data dan bukan tata letak halaman.
Masalah lain yang mungkin akan merusak hari Anda adalah menggunakan pemilih CSS pada tabel bersarang ... pada dasarnya Anda memiliki masalah yang sama - Anda tidak dapat memilih elemen TR dari tabel luar tanpa memilih yang ada di dalam tabel dalam juga. (Anda tidak dapat menggunakan pemilih anak karena tidak diterapkan di IE6)
Ini harus bekerja:
$("#table1 > tbody > tr")
Namun, saya menganjurkan agar Anda melakukan hardcode elemen TBODY, karena Anda tidak boleh mengandalkan browser untuk membuatnya untuk Anda.
sumber
http://api.jquery.com/child-selector/
$('tb1 > tr')
sumber
tb1
merupakan tag HTML, padahal bukan; dan jikatr
adalah anak langsung darinya (yang bukan, itu adalah anak langsung dari<tbody>
).Jika Anda memiliki id dari kedua elemen dan Anda ingin mencari elemen langsung gunakan kode di bawah ini
$("#parent > #two")
Jika Anda menginginkan pencarian bersarang, Anda dapat menggunakan find. Di sini dijelaskan secara rinci. https://handyopinion.com/jquery-selector-find-nested-child-elements/
sumber