Cách tiếp cận mà bạn đề xuất không được đảm bảo để cung cấp cho bạn kết quả mà bạn đang tìm kiếm - nếu bạn có một tbody
ví dụ:
<table id="myTable">
<tbody>
<tr>...</tr>
<tr>...</tr>
</tbody>
</table>
Bạn sẽ kết thúc với những điều sau đây:
<table id="myTable">
<tbody>
<tr>...</tr>
<tr>...</tr>
</tbody>
<tr>...</tr>
</table>
Do đó, tôi muốn giới thiệu phương pháp này thay thế:
$('#myTable tr:last').after('<tr>...</tr><tr>...</tr>');
Bạn có thể bao gồm mọi thứ trong after()
phương thức miễn là HTML hợp lệ, bao gồm nhiều hàng theo ví dụ trên.
Cập nhật: Xem lại câu trả lời này sau hoạt động gần đây với câu hỏi này. mí mắt làm cho một nhận xét tốt rằng sẽ luôn luôn có một tbody
DOM; Điều này đúng, nhưng chỉ khi có ít nhất một hàng. Nếu bạn không có hàng, sẽ không có hàng tbody
trừ khi bạn tự chỉ định một hàng.
DaRKoN_ đề nghị nối thêm vào tbody
thay vì thêm nội dung sau lần cuối tr
. Điều này xoay quanh vấn đề không có hàng, nhưng vẫn không chống đạn vì về mặt lý thuyết bạn có thể có nhiều tbody
yếu tố và hàng sẽ được thêm vào mỗi hàng.
Cân nhắc mọi thứ, tôi không chắc có một giải pháp một dòng duy nhất cho mọi tình huống có thể xảy ra. Bạn sẽ cần đảm bảo các mã số jQuery với đánh dấu của bạn.
Tôi nghĩ rằng giải pháp an toàn nhất có lẽ là đảm bảo bạn table
luôn bao gồm ít nhất một tbody
trong đánh dấu của bạn, ngay cả khi nó không có hàng. Trên cơ sở này, bạn có thể sử dụng các mục sau sẽ hoạt động theo nhiều hàng bạn có (và cũng chiếm nhiều tbody
yếu tố):
$('#myTable > tbody:last-child').append('<tr>...</tr><tr>...</tr>');