2011-12-05 12 views
5

मैं मौजूदा <div> के आस-पास <div> कैसे बना सकता हूं।किसी मौजूदा तत्व को jQuery में किसी अन्य के साथ कैसे लपेटें?

<div id="test"> 
    <h2>Greetings</h2> 
    <p>Test</p> 
    <div class="inner">Hello</div> 
    <p>Test</p> 
    <div class="inner">Goodbye</div> 
</div> 
<div id="test2"> 
    <h2>Greetings</h2> 
    <p>Test</p> 
    <div class="inner">Hello</div> 
    <p>Test</p> 
    <div class="inner">Goodbye</div> 
</div> 

<script> 
    $("#test").before('<div class="test3">'); 
    $("#test2").after('</div>'); 
</script> 

लेकिन यह है कि यह एक अंत टैग के बिना एक <div> सम्मिलित नहीं कर सकते लगता है:

मेरे कोड इस प्रकार है। तो उसे कैसे प्राप्त करें?

+0

आप $ में अपने कोड रैप करने के लिए चाहते हो सकता है (फ़ंक्शन() {// कोड यहां}); ताकि यह केवल इसे निष्पादित कर सके, पृष्ठ पूरी तरह लोड हो गया है –

+0

मेरे पास एक इटरेटर के साथ गतिशील सूची है। और मुझे प्रति div 3 आइटम डालने की जरूरत है। :( – newbie

+1

क्योक, इसकी आवश्यकता नहीं है क्योंकि एचटीएमएल स्क्रिप्ट से पहले आता है। –

उत्तर

3

jQuery देशी डीओएम एपीआई लपेटता है, जो पूर्ण HTML तत्वों के साथ काम करता है।

आप टैग के आधे भाग को सम्मिलित नहीं कर सकते हैं।

इसके बजाय, आपको अलग-अलग $('<div />') बनाकर एक पूर्ण नोड बनाना चाहिए, इसमें कई तत्व जोड़ना, फिर पूरे पेड़ को डोम में जोड़ना चाहिए।

+0

कोई कामकाज है? या मैं गतिशील रूप से div के अंदर तीन आइटम कैसे डाल सकता हूं? – newbie

+0

यह वास्तव में प्रश्न का उत्तर देने के लिए कुछ भी नहीं करता है। – riwalk

+0

@ नौसिखिया: इसे जोड़ने से पहले पेड़ बनाएं। मेरा संपादन देखें। – SLaks

4

आप .wrap() एपीआई कॉल का उपयोग कर सकते हैं जो मौजूदा HTML को एक नए तत्व के साथ लपेट देगा।

+0

यह प्रत्येक चयनित आइटम को लपेट देगा .. इसलिए यह प्रत्येक आइटम के चारों ओर एक अलग कंटेनर रखेगा .. 'wrapAll' इस मामले में आवश्यक है .. –

1

ठीक है, कि का उपयोग करें:

<script> 
     var inner=$("#test"); 
     var outer=$('<div class="outer"></div>'); 
     outer.html(inner.html()); 
     inner=outer; 
</script> 
+0

Tak का उत्तर बेहतर –

+0

क्या आप अभी अपना जवाब हटा नहीं सकते? –

1

इस का प्रयोग करें आपको क्या करना चाहिए है:

<script type="text/javascript"> 
$(function() { 
    $('<div class="test3"></div>') 
     .insertBefore($('#test')) 
     .append($('#test')) 
     .append($("#test2")); 
} 
</script> 
संबंधित मुद्दे