jQuery

2009-10-31 6 views
13

के साथ तालिका कॉलम सम्मिलित करना मेरे पास डेटा की एक तालिका है जिसे मुझे गतिशील रूप से कॉलम जोड़ने की आवश्यकता है। मैं इस बुनियादी तालिका शुरू करने के लिए के साथ कहते हैं कि चलो:jQuery

<table> 
<tr><td>cell 1</td><td>cell 2</td><td>cell 3</td></tr> 
<tr><td>cell 1</td><td>cell 2</td><td>cell 3</td></tr> 
<tr><td>cell 1</td><td>cell 2</td><td>cell 3</td></tr> 
</table> 

मैं सेल 1 और प्रत्येक पंक्ति में सेल 2 के बीच एक स्तंभ सम्मिलित करना चाहते हैं ... मैं इस की कोशिश की है, लेकिन यह सिर्फ तरह काम नहीं कर रहा मैं उम्मीद ...

$(document).ready(function(){ 
$('table').find('tr').each(function(){ 
    $(this).prepend('<td>cell 1a</td>'); 
}) 
}) 

उत्तर

27

इस प्रयास करें:

$(document).ready(function(){ 
    $('table').find('tr').each(function(){ 
     $(this).find('td').eq(0).after('<td>cell 1a</td>'); 
    }); 
}); 

आपका मूल कोड, प्रत्येक पंक्ति के अंत करने के लिए स्तंभ जोड़ना होगा स्तंभों के बीच में नहीं है। यह पहला कॉलम पाता है और पहले कॉलम के बगल में सेल जोड़ता है।

+0

अच्छा धन्यवाद, यह पूरी तरह से काम करता है! ... * सिर smacks * मुझे सेल की तलाश करनी चाहिए और इसे बाद में रखा जाना चाहिए था। मुझे वास्तव में कुछ कैफीन एलओएल – Mottie

+0

की ज़रूरत है, मैं वास्तव में 'td: eq (0) 'का उपयोग करके समाप्त हुआ क्योंकि कई बार जब मुझे तालिका के बीच में कॉलम डालने की आवश्यकता होती है तो 3 कॉलम के साथ, तो मुझे बस इतना करना होगा क्या चर बदल गया है ... मदद के लिए फिर से धन्यवाद! – Mottie

+0

यह एक बेहतर विचार है। मैंने इसे शामिल करने के लिए अपना जवाब बदल दिया है। –

2
$('table > tr > td:first-child').after('<td>cell 1a</td>'); 

tr > td एक tr के बाद प्रथम स्तर td चयन करता है, और तत्व बाहर after आवेषण डेटा।

+0

मैंने इसका परीक्षण करने की कोशिश की और यह काम नहीं किया, लेकिन धन्यवाद – Mottie

+2

यह काम नहीं करता है क्योंकि अधिकांश, यदि नहीं, तो ब्राउज़र सभी पंक्तियों को ' 'टैग के चारों ओर लपेटेंगे, इसलिए चयनकर्ता को" टेबल " > tbody> tr> td: first-child' "। बेशक यह करने के लिए कुछ हद तक धीमी क्वेरी हो सकती है क्योंकि jQuery को बड़ी तालिका में सभी कोशिकाओं को प्राप्त करने के लिए बहुत सारे फ़िल्टरिंग करना होगा ... –

0
$('td:first-child').after('&lt;td&gt;new cell&lt;/td&gt;');