2011-10-04 12 views
51

मुझे पेरेंट नोड के सभी तत्व .unbind() हैं।jQuery में किसी अभिभावक से सभी बच्चों (किसी भी स्तर पर) का चयन कैसे करें?

मैं माता-पिता से सभी बच्चों (किसी भी स्तर पर) कैसे चुन सकता हूं?

की कोशिश की:

$('#google_translate_element *').unbind('click'); 

लेकिन यह पहली बार बच्चों के स्तर के लिए ही काम करता है ...

Here वहाँ एक टेस्ट केस

+0

आप एक परीक्षण का मामला इस प्रदर्शन मिल गया है की एक बहुत कुछ कारण होगा? – lonesomeday

+2

क्या आप अभी $ ('# google_translate_element') नहीं कर सकते हैं। ('*') खोजें। अनबिंड ('क्लिक करें'); – rickyduck

उत्तर

100

उपयोग jQuery.find() है बच्चों से अधिक एक स्तर को खोजने के लिए गहरे।

.find() और .children() पद्धतियों, सिवाय इसके कि बाद केवल डोम पेड़ नीचे एक एकल स्तर यात्रा करता है, समान हैं।

$('#google_translate_element').find('*').unbind('click'); 

आप की जरूरत है find() में '*': .find के लिए एक कॉल में

पेड़ ट्रेवर्सल तरीकों के बाकी हिस्सों में विपरीत, चयनकर्ता एक्सप्रेशन की आवश्यकता होगी()। अगर हमें सभी वंश तत्वों को पुनर्प्राप्त करने की आवश्यकता है, तो हम इसे पूरा करने के लिए सार्वभौमिक चयनकर्ता '*' में पास कर सकते हैं।

+0

मैं अभी इसका उपयोग कर रहा हूं लेकिन क्या मुझे प्रदर्शन के बारे में चिंता करने की ज़रूरत है? – ProblemsOfSumit

+1

हां, संभोग। आपको हमेशा प्रदर्शन के बारे में चिंता करनी चाहिए। आधुनिक ब्राउज़र निष्पादन में काफी तेज़ होंगे, लेकिन यदि आप इस विशिष्ट स्निपेट के लिए समस्याओं में भाग लेते हैं, तो मूल तत्व को छोटे (बहुत से बच्चे नहीं) रखने या बच्चों को छोटे सेट में समूहित करने का प्रयास करें। – Konerak

16

मुझे लगता है कि तुम कर सकते हो:

$('#google_translate_element').find('*').each(function(){ 
    $(this).unbind('click'); 
}); 

लेकिन यह भूमि के ऊपर

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