आपके द्वारा सुझाया गया दृष्टिकोण आपको वह परिणाम देने की गारंटी नहीं है जिसकी आप तलाश कर रहे हैं - 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
डोम में हमेशा रहेगा ; यह सच है, लेकिन केवल अगर कम से कम एक पंक्ति है। यदि आपके पास कोई पंक्तियाँ नहीं हैं, तो कोई भी ऐसा नहीं होगा tbody
जब तक कि आपने स्वयं को निर्दिष्ट न किया हो।
DaRKoN_ सुझाव देता हैtbody
कि अंतिम के बाद सामग्री जोड़ने के बजाय इसे जोड़ना है tr
। यह कोई पंक्तियाँ नहीं होने के मुद्दे के आसपास है, लेकिन अभी भी बुलेटप्रूफ नहीं है क्योंकि आप सैद्धांतिक रूप से कई tbody
तत्व हो सकते हैं और पंक्ति उनमें से प्रत्येक में जुड़ जाएगी।
सब कुछ वजन करते हुए, मुझे यकीन नहीं है कि एक एकल-पंक्ति समाधान है जो हर एक संभव परिदृश्य के लिए खाता है। आपको यह सुनिश्चित करना होगा कि आपके मार्कअप के साथ jQuery कोड लंबा हो।
मुझे लगता है कि सबसे सुरक्षित समाधान संभवतः यह सुनिश्चित करना है कि आपके मार्कअप में table
हमेशा कम से कम एक शामिल हो tbody
, भले ही उसकी कोई पंक्तियाँ न हों। इस आधार पर, आप निम्नलिखित का उपयोग कर सकते हैं जो आपके पास कई पंक्तियों के लिए काम करेंगे (और कई tbody
तत्वों के लिए भी खाते हैं):
$('#myTable > tbody:last-child').append('<tr>...</tr><tr>...</tr>');