No se garantiza que el enfoque que sugiera le brinde el resultado que está buscando, ¿qué pasaría si tuviera un tbody
por ejemplo:
<table id="myTable">
<tbody>
<tr>...</tr>
<tr>...</tr>
</tbody>
</table>
Terminarías con lo siguiente:
<table id="myTable">
<tbody>
<tr>...</tr>
<tr>...</tr>
</tbody>
<tr>...</tr>
</table>
Por lo tanto, recomendaría este enfoque en su lugar:
$('#myTable tr:last').after('<tr>...</tr><tr>...</tr>');
Puede incluir cualquier cosa dentro del after()
método siempre que sea HTML válido, incluidas varias filas según el ejemplo anterior.
Actualización: Revisando esta respuesta después de la actividad reciente con esta pregunta. la falta de párpados hace un buen comentario de que siempre habrá un tbody
en el DOM; Esto es cierto, pero solo si hay al menos una fila. Si no tiene filas, no las habrá a tbody
menos que haya especificado una usted mismo.
DaRKoN_ sugiere anexar a la tbody
vez de añadir contenido después de la última tr
. Esto evita el problema de no tener filas, pero todavía no es a prueba de balas, ya que teóricamente podría tener múltiples tbody
elementos y la fila se agregaría a cada uno de ellos.
Pesando todo, no estoy seguro de que haya una única solución de una línea que tenga en cuenta cada escenario posible. Deberá asegurarse de que el código jQuery coincida con su marcado.
Creo que la solución más segura es probablemente asegurarse de que table
siempre incluya al menos uno tbody
en su marcado, incluso si no tiene filas. Sobre esta base, puede usar lo siguiente, que funcionará sin importar cuántas filas tenga (y también tenga en cuenta varios tbody
elementos):
$('#myTable > tbody:last-child').append('<tr>...</tr><tr>...</tr>');