2012-02-21 9 views
16

मेरे पास कई उप-divs के साथ एक रैपर div है और उन उप-divs के अंदर टैग भी है। मैं रैपर div को हटाना चाहता हूँ। मैंने JQuery के अनचाहे पर विचार किया है, लेकिन ऐसा प्रतीत होता है कि मुझे Jquery को बताने के लिए बच्चे div को निर्दिष्ट करने की आवश्यकता है। क्या यह काम करेगा यदि कई बच्चे हैं?लपेटने div को हटा दें और सभी उप-divs बरकरार छोड़ दें?

तो, कोड लगता है:

<div id="wrapper"> 
    <div id="innerDiv1"></div> 
    <div id="innerDiv2"></div> 
    <div id="innerDiv3"></div> 
</div> 

किसी भी मदद की, हमेशा की तरह, की सराहना की है।

धन्यवाद।

उत्तर

27

unwrap विधि से कार्य करेंगे (आप में से भाई-बहनों में/किसी भी संख्या किसी भी चुन सकते हैं):

$("#innerDiv1").unwrap(); 

डॉक्स से (जोर जोड़ा):

मिलान किया तत्वों (और उनके भाई बहन, यदि कोई) डीओएम संरचना के भीतर अपने माता-पिता को प्रतिस्थापित करें।

+1

धन्यवाद @James Allardice। भले ही मैंने JQuery दस्तावेज़ों की जांच की, मैंने किसी भी तरह से "और उनके भाई बहनों" को याद किया। मुझे लगता है कि थोड़ा खूनी आंखों को प्राप्त करना। –

+0

@ रॉबर्टस्मिथ - कोई समस्या नहीं, खुशी है कि मैं मदद कर सकता हूं :) –

5

@james करने पर जोड़ने के लिए

आप इस

var innerDivs = $("#wrapper").html(); 
$("#wrapper").remove(); 
$("body").append(innerDivs);​ // you will need to change this to append to whatever element you like 

jsfiddle उदाहरण

http://jsfiddle.net/dAZ9D/

+2

आप यह कर सकते हैं, लेकिन आप किसी भी ईवेंट हैंडलर को '# रैपर' के बच्चों से बंधेगा क्योंकि तत्वों को पूरी तरह से डीओएम से हटा दिया जाता है और फिर फिर से जोड़ा जाता है। 'अनैप' विधि का उपयोग उन ईवेंट हैंडलरों को संरक्षित करेगा क्योंकि तत्वों को कभी भी डोम से हटाया नहीं जाता है। –

+0

हां सही जेम्स है लेकिन वह विशिष्ट रूप से नहीं पूछा जाता है कि हैंडलर को बनाए रखना है या नहीं। Thats क्यों मैंने कहा "जेम्स जवाब में जोड़ें" :) चीयर्स! –

+0

मुझे पता है, बस मामले में इसे इंगित कर रहा है :) –

0
function unwrap(el){ 
    var parent = el.parentNode; // get the element's parent node 
    while (el.firstChild){ 
     parent.insertBefore(el.firstChild, el); // move all children out of the element 
    } 
    parent.removeChild(el); // remove the empty element 
} 
की तरह कुछ कर सकते हैं

कोड सीधे आगे और भी बहुत कुछ है संबंधित जेक्यू से तेज़ यूरी की विधि $ .unwrap()।

स्रोत: https://plainjs.com/javascript/manipulation/unwrap-a-dom-element-35/

संबंधित मुद्दे