Podejście, które sugerujesz, nie gwarantuje uzyskania oczekiwanego rezultatu - co jeśli tbody
na przykład:
<table id="myTable">
<tbody>
<tr>...</tr>
<tr>...</tr>
</tbody>
</table>
Skończyłoby się z następującymi:
<table id="myTable">
<tbody>
<tr>...</tr>
<tr>...</tr>
</tbody>
<tr>...</tr>
</table>
Dlatego zamiast tego poleciłbym to podejście:
$('#myTable tr:last').after('<tr>...</tr><tr>...</tr>');
W after()
metodzie można uwzględnić wszystko, o ile jest to poprawny kod HTML, w tym wiele wierszy zgodnie z powyższym przykładem.
Aktualizacja: ponowne sprawdzenie tej odpowiedzi po ostatniej aktywności związanej z tym pytaniem. brak powiek jest dobrym komentarzem, że zawsze będzie tbody
w DOM; jest to prawda, ale tylko jeśli jest co najmniej jeden wiersz. Jeśli nie masz wierszy, nie będzie, tbody
chyba że sam określisz jeden.
DaRKoN_ sugeruje dołączanie do tbody
treści zamiast dodawania treści po ostatnim tr
. Rozwiązuje to problem braku wierszy, ale nadal nie jest kuloodporny, ponieważ teoretycznie można mieć wiele tbody
elementów, a wiersz zostanie dodany do każdego z nich.
Biorąc pod uwagę wszystko, nie jestem pewien, czy istnieje jedno jednowierszowe rozwiązanie, które uwzględnia każdy możliwy scenariusz. Musisz upewnić się, że kod jQuery zgadza się ze znacznikami.
Myślę, że najbezpieczniejszym rozwiązaniem jest zapewnienie, aby table
zawsze zawierałeś przynajmniej jeden tbody
ze znaczników, nawet jeśli nie ma żadnych wierszy. Na tej podstawie możesz użyć następujących opcji, które będą działać bez względu na liczbę posiadanych wierszy (a także uwzględniać wiele tbody
elementów):
$('#myTable > tbody:last-child').append('<tr>...</tr><tr>...</tr>');