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