2012-05-30 11 views
7

मान लें कि मेरे पास रूट पर #root के साथ तत्वों का पदानुक्रम है। मैं अपने सभी पोते को पाने के लिए $('#root > * > *') का उपयोग कर सकता हूं। क्या ऐसा कोई तरीका है जो मैं कर सकता हूं यदि मेरे पास पहले से $('#root') है?पोते के लिए चयनकर्ता, या किसी ज्ञात तत्व पर चयनकर्ता को एंकर करने के लिए कैसे

$('#root').find('* > *') निश्चित रूप से यह नहीं है, क्योंकि यह पहले स्टार के लिए किसी भी वंशज से खुशी से "शुरू" होगा, न केवल #root बच्चों।

क्या jQuery में कोई फ़ंक्शन है जो वर्तमान तत्व पर "एंकर" करेगा, अपने बच्चों या खुद से शुरू होगा? यह मुझे थोड़ी देर के लिए परेशान कर रहा है, और मुझे दस्तावेज़ों में कुछ भी नहीं मिला। अपने पोते के लिए फिर से अपने बच्चों के लिए एक बार और:

+0

'.find() 'संभवतः कभी भी सबसे कष्टप्रद jQuery ट्रैवर्सल विधि है। – BoltClock

उत्तर

13

या तो शुरू एक और > साथ लगता है अभिव्यक्ति (इस वाक्य documented है):

// This is functionally the same as $('#root > * > *') 
$('#root').find('> * > *') 

या .children() दो बार फोन

$('#root').children().children() 
+0

हाँ, मुझे '.children() 'चीज़ के बारे में पता था, लेकिन ... अच्छा, मैं जो कर रहा हूं वह ठीक नहीं है, मैं वास्तव में चयनकर्ता चीज़ चाहता था। और चयनकर्ता चीज ... वाह, मैंने कभी कोशिश नहीं की, यह आश्चर्यजनक है। कोई विचार यह कितना ठोस है? मैं अनियंत्रित होने से थोड़ा सावधान हूं - अब काम करता है, लेकिन कितने समय तक? – Amadan

+0

@ अहमदन: मुझे इसके बारे में कोई जानकारी नहीं है ... ऐसा लगता है कि अब कुछ समय से काम किया है। – BoltClock

+0

मैंने इस पोस्ट को यह दर्शाने के लिए अद्यतन किया है कि यह सुविधा अब दस्तावेज़ित है। – JDB

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