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