2009-08-11 17 views
11

क्या कोई विशिष्ट वर्ग नाम वाले तत्वों को छोड़कर div को खाली करने का कोई तरीका है? या, क्या एक डिवीजन के भीतर सभी तत्वों को केवल एक निर्दिष्ट वर्ग वाले तत्वों को छोड़ने का कोई तरीका है?मिलान किए गए तत्वों को छोड़कर Jquery खाली() div

+0

अगर मार्वे के जवाब समस्या आप इसे स्वीकार करना चाहिए हल करती है, उसके जवाब के पास जाँच चिह्न पर क्लिक करके: इस हल करने के लिए हम केवल इस तरह के रूप माता पिता के प्रत्यक्ष बच्चों, फ़िल्टर करना चाहते हैं। – SilentGhost

उत्तर

39

इस चाल करना चाहिए इस

01 आज़माएं
+0

@ जेसन - मैं सभी मार्वे के उत्तर के लिए हूं - लेकिन क्या होगा यदि वे दोनों काम करते हैं? उसे उस उत्तर को स्वीकार करना चाहिए जो उसके लिए सबसे उपयोगी है। – karim79

1

@ मार्वे की तरह शायद बेहतर है, लेकिन यहाँ एक और वैसे भी (filter का उपयोग) है:

$('#theDiv').find('*').not('.className').remove(); 

नमूना मार्कअप:

<div id="theDiv"> 
    <p>this will be removed</p> 
    <p class="className">this will stay</p> 
</div> 
1

$("#yourDiv").html($('#yourDiv').filter('.IWantThisClass, .IWantThisToo').html()); 
2

यहां केवल jQuery चयनकर्ताओं का उपयोग कर एक और विकल्प है:

$("#theDiv *:not('.className')").remove(); 

इस और से अधिक आयु वालों की तरह एक विधि के साथ मुद्दा है अगर वहाँ उदाहरण के लिए किसी भी बच्चे तत्वों वे भी हटा दिया जाएगा रहे हैं,:

<div id="theDiv"> 
    <p>this will be removed</p> 
    <p class="className"><strong>this will also be removed :(</strong></p> 
</div> 

यह भी निकाल दिया जाएगा :( पाठ क्योंकि यह वाइल्डकार्ड मिलान किया जाता है * और वर्ग className नहीं है और साथ ही हटा दिया जाएगा।

$("#theDiv > *:not('.className')").remove(); 
+1

धन्यवाद। यह उत्तर स्वीकार किए गए एक आईएमओ से काफी बेहतर है। – Demnogonis

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