Подход, который вы предлагаете, не гарантирует, что вы получите результат, который вы ищете - что, если у вас есть tbody
, например:
<table id="myTable">
<tbody>
<tr>...</tr>
<tr>...</tr>
</tbody>
</table>
В итоге вы получите следующее:
<table id="myTable">
<tbody>
<tr>...</tr>
<tr>...</tr>
</tbody>
<tr>...</tr>
</table>
Поэтому я бы порекомендовал такой подход:
$('#myTable tr:last').after('<tr>...</tr><tr>...</tr>');
Вы можете включить что-либо в метод after()
, если это допустимый HTML, включая несколько строк, как в примере выше.
Обновление: Пересмотр этого ответа после недавней активности с этим вопросом. отсутствие век дает хороший комментарий, что в DOM всегда будет tbody
; это верно, но только если есть хотя бы один ряд. Если у вас нет строк, не будет tbody
, если вы сами не указали одну.
DaRKoN_ предлагает добавить к tbody
вместо добавления контента после последнего tr
. Это решает проблему отсутствия строк, но все же не является пуленепробиваемым, поскольку теоретически вы можете иметь несколько элементов tbody
, и строка будет добавлена к каждому из них.
Взвешивая все, я не уверен, что существует единственное однострочное решение, которое учитывает все возможные сценарии. Вам нужно убедиться, что код jQuery соответствует вашей разметке.
Я думаю, что наиболее безопасным решением, вероятно, является обеспечение того, чтобы ваш table
всегда включал в разметку хотя бы один tbody
, даже если в нем нет строк. Исходя из этого, вы можете использовать следующее, которое будет работать с любым количеством строк (а также с учетом нескольких элементов tbody
):
$('#myTable > tbody:last-child').append('<tr>...</tr><tr>...</tr>');