Подход, который вы предлагаете, не гарантирует, что вы получите результат, который вы ищете - что, если у вас есть, 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>');