Tengo una estructura de tabla como esta:
<table1>
<tbody>
<tr>
<td></td>
...
<td>
<table2>
<tbody>
<tr>
<td></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
En javascript, tengo una variable tbl
con el valor de $(table1)
, y luego quiero obtener todos los elementos secundarios directos (tr) <tbody>
de table1
. Mi codigo es:
$('tr', tb1)
Aparentemente, devuelve todos los <tr>
elementos de table1 y table2. Creo que puedo pasar
$('tr', tb1).not(function(){return $(this).parent().parent()[0] != tb1;})
o este tipo de lógica.
Sé que $('table1 > tbody > tr')
puedo conseguir el hijo directo tr
. Desafortunadamente no puedo usar esto.
¿Alguien tiene una buena idea sobre esto?
Gracias.
jquery
parent-child
Jason Li
fuente
fuente
>
) sin especificar nada delante de él. Gracias.Como @ jave.web mencionó en los comentarios
Para buscar a través de los hijos directos de un elemento use
.children()
. Solo buscará a través de los hijos directos y no atravesará más profundo. http://api.jquery.com/children/fuente
Esta es exactamente la razón por la que se debe tener cuidado con las tablas anidadas. Realmente espero que los use para datos y no para diseño de página.
Otro problema que probablemente arruinará su día es el uso de selectores CSS en tablas anidadas ... básicamente tiene el mismo problema: no puede seleccionar elementos TR de la tabla externa sin seleccionar los que están dentro de la tabla interna también. (No puede usar el selector secundario porque no está implementado en IE6)
Esto debería funcionar:
$("#table1 > tbody > tr")
Sin embargo, le recomiendo que codifique el elemento TBODY, ya que no debe confiar en el navegador para crearlo por usted.
fuente
http://api.jquery.com/child-selector/
$('tb1 > tr')
fuente
tb1
fuera una etiqueta HTML, que no lo es; y sitr
fuera un hijo directo de él (lo cual no es, es un hijo directo de<tbody>
).Si tiene identificadores de ambos elementos y desea encontrar el elemento directo, use el siguiente código
$("#parent > #two")
Si desea una búsqueda anidada, puede usar find. Se explica en detalle aquí. https://handyopinion.com/jquery-selector-find-nested-child-elements/
fuente