2011-08-07 9 views
22

निम्नलिखित कोड पर विचार करें: (लाइव उदाहरण here)jQuery: "wrapAll()" के साथ बनाए गए रैपर तत्व को कैसे प्राप्त करें?

HTML:

<div class="a">Hello</div> 
<div class="a">Stack</div> 
<div class="a">Overflow</div> 

सीएसएस:

.wrapper { 
    background-color: #777; 
} 

जे एस:

$(function() { 
    var wrapper = $("<div class='wrapper'></div>"); 
    $(".a").wrapAll(wrapper); 
    wrapper.css("border", "5px solid black"); // Doesn't work 
}); 

करने के लिए सही तरीका क्या होगा क्या बनाया रैपर प्राप्त करें और इसके गुणों को बदलें?

नोट: डोम में अन्य .wrapper तत्वों रहे हैं, तो यह काम नहीं करेगा:

$(".wrapper").css("border", "5px solid black"); 

मैं या तो बनाया आवरण के लिए एक अनूठा id देने के लिए नहीं करना चाहती।

उत्तर

29

जब से तुम सिर्फ तत्वों लिपटे, आप parent() उपयोग कर सकते हैं नव डाला रैपर प्राप्त करने के लिए:

$(".a").wrapAll("<div class='wrapper'></div>") 
     .parent().css("border", "5px solid black"); 
+0

@ मैथ्यू, 'wrapAll()' लपेटा तत्व लौटाता है। [यह बेवकूफ] देखें (http://jsfiddle.net/2e2WL/), यह 'DIV' और' P' नहीं कहेंगे। –

-2
$(function() { 
    var wrapper = $("<div class='wrapper'></div>"); 
    var wrapped = $(".a").wrapAll(wrapper); 
    wrapped.css("border", "5px solid black"); 
}); 
+0

यह नहीं है कि यह कैसे काम करता है, क्षमा करें। 'WrapAll() 'काम करता है, यह बताते हुए – func0der

5

wrapper में संग्रहीत jQuery वस्तु क्लोन हो जाता है जब wrapAll कहा जाता हो जाता है, तो आप प्रभावित नहीं कर सकते .wrappers जो wrapper में हेरफेर करके DOM में डाला गया है, आपको दस्तावेज़ से उन्हें चुनने की आवश्यकता है।

+0

+1, हालांकि यह मेरे प्रश्न का उत्तर नहीं देता है। –

+0

@ मिशा - मैंने सोचा कि फ्रेडरिक पहले ही ऐसा कर चुका था, बस एक बिंदु जोड़ना चाहता था। – karim79

+0

@ karim79 शायद मूल उत्तर पर टिप्पणी के रूप में ऐसा करने के लिए बेहतर है – andyface

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