JQuery

2012-06-26 6 views
7

का उपयोग करके पूरी तालिका पंक्ति को बदलें ( सहित) मैंने यहां अन्य उदाहरणों को देखा है, लेकिन वे <tr> की सामग्री को प्रतिस्थापित कर रहे हैं और <tr> सहित पूरी पंक्ति नहीं।JQuery

<table> 
    <tr style="display:block"> 
     <td id="someid">Test</td> 
     <td>Some text</td> 
    </tr> 
</table> 

निम्नलिखित कोड केवल <tr> के आंतरिक HTML को प्रतिस्थापित करता है। मुझे <tr> समेत सब कुछ बदलने की जरूरत है ताकि पंक्ति गिर जाएगी। किसी को भी है कि इस कोड करता है या पूरी तरह से पंक्ति नहीं की जगह है इस बात की पुष्टि कर सकते हैं:

var newtr = "<tr style='display:none'><td id='someid'></td><td></td></tr>" 
$("td#someid").parent().html(newtr); 

कारण है कि मुझे नहीं लगता कि पूरे <tr> बदला जा रहा है, क्योंकि पंक्ति पतन नहीं करता है - यद्यपि मैं परीक्षण किया है JQuery के बाहर HTML और यह ठीक काम करता है।

$("td#someid").parent().replaceWith(newtr); 

उत्तर

20

आप बहुत करीब हैं, बस jQuery replaceWith[jQuery docs] फ़ंक्शन का उपयोग करें :

$("td#someid").parent().replaceWith(newtr); 
+0

जांच कर सकते हैं वाह, इस तरह दिखता है जवाब है। मैंने अपना कोड बदल दिया और यह बेहतर काम करता है। पहले मैं पंक्ति को लगभग 32 बार बदलने में सक्षम था और सभी पंक्तियां गायब हो जाएंगी। मुझे पता था कि कुछ गलत था। यह तय है कि। लेकिन मेरी पंक्तियां अभी भी गिर रही नहीं हैं। शायद यह हिस्सा एक सीएसएस प्रश्न है, लेकिन इस स्क्रिप्ट के समान HTML पृष्ठ में काम करने के लिए इसका परीक्षण किया गया है। क्या चीजों के JQuery अंत में मुझे कुछ और करने की ज़रूरत है? बीटीडब्ल्यू, इन सभी उत्तरों के लिए धन्यवाद! – rwkiii

+0

@rwkiii यदि आपको पंक्तियों को ध्वस्त करने में मदद की ज़रूरत है, तो आपको इसके बारे में एक नया प्रश्न पूछना चाहिए। यह सब एक टेबल पंक्ति को प्रतिस्थापित करता है। –

2

आप, उसकी सामग्री वस्तु को बदलने के लिए प्रयास कर रहे हैं नहीं

2

तत्व का स्थान बदलने के लिए jquery की विधि के साथ प्रतिस्थापित करें।

$('#someid').parent().replaceWith(newtr); 
1

आप HTML तकनीक के रूप में तत्वों से स्विच करने के लिए विरोध पसंद करते हैं, इस प्रयास करें:

आप कह रही है कि इस टीआर तत्व की जगह नहीं होगी में सही हैं। .html ("...") तत्व के आंतरिक HTML को प्रतिस्थापित करता है (इस मामले में tr)। इस लक्ष्य को हासिल करने के लिए JavaScript outerHTML का उपयोग करें: $("td#someid").parent().get(0).outerHTML = newtr;

+0

अगर मुझे सही ढंग से याद किया जाता है, तो 'बाहरी HTML' क्रॉस-ब्राउज़र नहीं है। –

+0

एफएफ 11.0+ क्रोम 0.2+ आईई 4.0+ ओपेरा 7+ सफारी 1.3+ बाहरी एचटीएमएल (https://developer.mozilla.org/en/DOM/element.outerHTML) का समर्थन करता है। JQuery 1.2+ विधि के साथ प्रतिस्थापित करने का समर्थन करता है। – jaypeagi

1

आप भी इस JsFiddle

var newtr = "<tr style='display:none'><td id='someid'></td><td></td></tr>"; 

$("td#someid").parent().parent().html(newtr); 
+0

यदि अधिक पंक्तियां मौजूद हैं, तो यह मौजूदा एचटीएमएल लिखने पर खत्म हो जाएगी। – Adil