Mam taką strukturę tabeli:
<table1>
<tbody>
<tr>
<td></td>
...
<td>
<table2>
<tbody>
<tr>
<td></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
W javascript mam zmienną tbl
o wartości $(table1)
, a następnie chcę uzyskać wszystkie bezpośrednie elementy potomne (tr) <tbody>
of table1
. Mój kod to:
$('tr', tb1)
Najwyraźniej zwraca wszystkie <tr>
elementy z tabeli1 i tabeli2. Myślę, że dam radę
$('tr', tb1).not(function(){return $(this).parent().parent()[0] != tb1;})
lub tego rodzaju logika.
Wiem, że $('table1 > tbody > tr')
mogę dostać bezpośrednie dziecko tr
. Niestety nie mogę tego użyć.
Czy ktoś ma o tym dobry pomysł?
Dzięki.
jquery
parent-child
Jason Li
źródło
źródło
>
) bez podawania czegokolwiek przed nim. Dziękuję Ci.Jak wspomniano w komentarzach @ jave.web
Aby przeszukać bezpośrednie elementy potomne elementu, użyj
.children()
. Przeszukuje tylko bezpośrednie dzieci i nie przechodzi głębiej. http://api.jquery.com/children/źródło
To jest właśnie powód, dla którego należy uważać przy zagnieżdżaniu tabel. Naprawdę mam nadzieję, że użyjesz ich do danych, a nie układu strony.
Inną kwestią, która prawdopodobnie zrujnuje Twój dzień, jest używanie selektorów CSS na zagnieżdżonych tabelach ... w zasadzie masz ten sam problem - nie możesz wybrać elementów TR tabeli zewnętrznej bez wybrania tych również w tabeli wewnętrznej. (Nie możesz użyć selektora podrzędnego, ponieważ nie jest on zaimplementowany w IE6)
To powinno działać:
$("#table1 > tbody > tr")
Zalecam jednak zakodowanie na stałe elementu TBODY, ponieważ nie powinieneś polegać na przeglądarce, aby utworzyła go za Ciebie.
źródło
http://api.jquery.com/child-selector/
$('tb1 > tr')
źródło
tb1
był tagiem HTML, a tak nie jest; i gdybytr
był jego bezpośrednim dzieckiem (a nie jest, jest jego bezpośrednim dzieckiem<tbody>
).Jeśli masz identyfikatory obu elementów i chcesz znaleźć element bezpośredni, użyj poniższego kodu
$("#parent > #two")
Jeśli potrzebujesz wyszukiwania zagnieżdżonego, możesz użyć funkcji find. Jest to szczegółowo wyjaśnione tutaj. https://handyopinion.com/jquery-selector-find-nested-child-elements/
źródło