jquery, आईडी के भीतर कक्षा के लिए चयनकर्ता


91

नीचे, मुझे उन तत्वों का चयन कैसे करना चाहिए जिनमें my_classतत्व के भीतर वर्ग होता है id = "my_id"?

ध्यान दें कि तत्व में एक अन्य वर्ग भी हो सकता है, जिसका मैं चयन नहीं कर रहा हूं।

<div id = "my_id">
    <span class = "my_class hidden">hi</span>
    <span class = "my_class">hello</span>
</div>

कोशिश कर रहा था

$("#my_id [class*=my_class ]")

जवाबों:


150

आप वंश चयनकर्ता के साथ वर्ग चयनकर्ता का उपयोग कर सकते हैं

$("#my_id .my_class")

क्या मैं इसके साथ गठबंधन कर सकता हूं: पहले (#my_id के अंदर उस वर्ग का पहला तत्व प्राप्त करने के लिए)?
जकोब.ज।

1
@ jakob.j$("#my_id .my_class:first")
अरुण पी जॉनी

क्या मैं $ की तरह आईडी से वर्ग के लिए समान का उपयोग कर सकता हूं ("। My_class #my_id") जब आईडी को कक्षा के अंदर परिभाषित किया जाता है
dhS

48

बस सादे ol 'वर्ग चयनकर्ता का उपयोग करें।

$('#my_id .my_class')

इससे कोई फर्क नहीं पड़ता कि तत्व में अन्य वर्ग भी हैं। इसका .my_class वर्ग है, और यह कहीं न कहीं #my_id के अंदर है , इसलिए यह उस चयनकर्ता से मेल खाएगा।

प्रदर्शन के संबंध में

JQuery के चयनकर्ता प्रदर्शन प्रलेखन के अनुसार , यह दो चयनकर्ताओं को अलग-अलग उपयोग करने के लिए तेज़ है, जैसे:

$('#my_id').find('.my_class')

यहाँ प्रलेखन का प्रासंगिक हिस्सा है:

आईडी आधारित चयनकर्ताओं

// Fast:
$( "#container div.robotarm" );

// Super-fast:
$( "#container" ).find( "div.robotarm" );

.find()आईडी केवल चयन का उपयोग कर नियंत्रित किया जाता है - दृष्टिकोण तेजी क्योंकि पहले चयन कड़ाके की धूप चयनकर्ता इंजन के माध्यम से जा के बिना नियंत्रित किया जाता है है document.getElementById(), जो बहुत तेज है, क्योंकि यह ब्राउज़र का निवासी है।

चयन आईडी के आधार पर या वर्ग द्वारा अकेले (अन्य बातों के अलावा) का आह्वान ब्राउज़र की आपूर्ति कार्यों की तरह document.getElementById()है, जो काफी तेजी से कर रहे हैं, जबकि एक का उपयोग कर वंशज चयनकर्ता उल्लेख किया कड़ाके की धूप इंजन है, हालांकि तेजी से, सुझाव विकल्प की तुलना में धीमी है invokes।



1

मुझे लगता है कि आपका पूछना केवल <span class = "my_class">hello</span>इस तत्व का चयन करने के लिए है , आपने ऐसा किया है, यदि मैं आपके प्रश्न को सही ढंग से समझ रहा हूं तो यह उत्तर है,

$("#my_id [class='my_class']").addClass('test');

DEMO


$("#my_id .my_class")छोटे समकक्ष है; आप इस मामले में विशेषता चयनकर्ता का उपयोग करने से कुछ हासिल नहीं करते हैं।
डोपेलग्रेनेर

मुझे उम्मीद है कि आपके उत्तर के रूप में भी वही काम किया है, जबकि मैं आपके द्वारा दिए गए प्रश्न का उत्तर दे रहा हूं, मैंने इस बात पर ध्यान नहीं दिया है कि जब से मैंने उत्तर दिया है मैंने प्रश्न को हटा नहीं दिया है।
थिरुमलाई मुरुगन

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.