2010-09-22 20 views
27
<div class="outer"> 
    <div class="inner"></div> 
</div> 

मैं यहां आंतरिक div कैसे ढूंढूं?वर्ग चयनकर्ता के भीतर jQuery वर्ग

$container.find('.outer .inner')

सिर्फ class="outer inner" साथ एक div के लिए लग रहा है, यह सही है?

तो मैं

$container.find('.outer > .inner')

की कोशिश की, लेकिन वह काम करने लगता है।

संपादित करें:

मैं अपनी आसान की तरह

$container.find('.outer').find('.inner')

कुछ के साथ खोजने के लिए पता है, लेकिन मैं एक चयनकर्ता वाक्य रचना की तरह है जो बेहतर imho पढ़ता है की तलाश में हूँ।

+0

'कंटेनर 'कैसे परिभाषित किया गया है? इसके अलावा, जब भी संभव हो, एकल चयनकर्ताओं का उपयोग करना चाहिए। यदि आपको जगह पर विभिन्न चयनकर्ता भागों की खोज करने की आवश्यकता नहीं है तो इसे पढ़ने में आसान तरीका है। – jwueller

+0

"लेकिन मैं एक तरह के चयनकर्ता वाक्यविन्यास की तलाश में हूं जो बेहतर इमो को पढ़ता है।" आपको '.ind (...)' तरीका पसंद करना चाहिए क्योंकि यह आपके चयनकर्ता को जितना अधिक जटिल होगा या यदि आप एक चयनकर्ता का उपयोग करते हैं जो ब्राउज़र द्वारा समर्थित नहीं है। इस मामले में sizzle का चयन चयन के लिए किया जाएगा जो '.find (...)' के साथ एक विभाजित चयनकर्ता की तुलना में वास्तव में धीमा हो सकता है। – Andreas

उत्तर

58

सिर्फ वर्ग के साथ एक div के लिए लग रहा है = "बाहरी भीतरी", सही है?

नहीं है, '.outer .inner'.inner वर्ग के साथ सभी तत्वों को भी एक पूर्वज के रूप में .outer वर्ग के साथ एक तत्व है कि के लिए दिखेगा। '.outer.inner' (कोई जगह नहीं) परिणाम देगा जो आप सोच रहे हैं।

'.outer > .inner'.inner वर्ग के साथ तत्वों के लिए .outer वर्ग के साथ एक तत्व की तत्काल बच्चों के लिए दिखेगा।

'.outer .inner' और '.outer > .inner' दोनों को आपके उदाहरण के लिए काम करना चाहिए, हालांकि चयनकर्ता मूल रूप से अलग हैं और आपको इससे सावधान रहना चाहिए।

+1

मुझे अपने कोड में एक और गलती हुई जिसने मुझे लगता है कि मेरा चयनकर्ता काम नहीं कर रहा था, लेकिन यह सब कुछ था। स्पष्टीकरण के लिए धन्यवाद। – fearofawhackplanet

25

इस एचटीएमएल के लिए:

<div class="outer"> 
    <div class="inner"></div> 
</div> 

इस चयनकर्ता काम करना चाहिए:

$('.outer > .inner') 
संबंधित मुद्दे