Es ist nicht garantiert, dass der von Ihnen vorgeschlagene Ansatz Ihnen das gewünschte Ergebnis liefert - was wäre, wenn Sie tbody
beispielsweise Folgendes hätten :
<table id="myTable">
<tbody>
<tr>...</tr>
<tr>...</tr>
</tbody>
</table>
Sie würden mit dem folgenden enden:
<table id="myTable">
<tbody>
<tr>...</tr>
<tr>...</tr>
</tbody>
<tr>...</tr>
</table>
Ich würde daher stattdessen diesen Ansatz empfehlen:
$('#myTable tr:last').after('<tr>...</tr><tr>...</tr>');
Sie können alles in die after()
Methode aufnehmen, solange es sich um gültiges HTML handelt, einschließlich mehrerer Zeilen gemäß dem obigen Beispiel.
Update: Überprüfung dieser Antwort nach den letzten Aktivitäten mit dieser Frage. Augenlidlosigkeit macht einen guten Kommentar, dass es immer eine tbody
im DOM geben wird; Dies ist wahr, aber nur, wenn mindestens eine Zeile vorhanden ist. Wenn Sie keine Zeilen haben, gibt es keine, es sei tbody
denn, Sie haben selbst eine angegeben.
DaRKoN_ schlägt vor , an den tbody
Inhalt anzuhängen , anstatt ihn nach dem letzten hinzuzufügen tr
. Dies umgeht das Problem, keine Zeilen zu haben, ist aber immer noch nicht kugelsicher, da Sie theoretisch mehrere tbody
Elemente haben könnten und die Zeile zu jedem von ihnen hinzugefügt würde.
Ich bin mir nicht sicher, ob es eine einzige einzeilige Lösung gibt, die jedes einzelne mögliche Szenario berücksichtigt. Sie müssen sicherstellen, dass der jQuery-Code mit Ihrem Markup übereinstimmt.
Ich denke, die sicherste Lösung besteht wahrscheinlich darin, sicherzustellen, dass Sie table
immer mindestens eine tbody
in Ihr Markup aufnehmen, auch wenn es keine Zeilen enthält. Auf dieser Basis können Sie Folgendes verwenden, das funktioniert, egal wie viele Zeilen Sie haben (und auch mehrere tbody
Elemente berücksichtigen ):
$('#myTable > tbody:last-child').append('<tr>...</tr><tr>...</tr>');