วิธีที่คุณแนะนำไม่ได้รับประกันว่าจะให้ผลลัพธ์ที่คุณต้องการ - จะเป็นอย่างไรถ้าคุณมี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>');