मैं उन सभी तत्वों का चयन करना चाहता हूं जिनमें दो वर्ग हैं aऔर b।
<element class="a b">
तो, केवल उन तत्वों को जिनके पास दोनों वर्ग हैं।
जब मैं इसका उपयोग $(".a, .b")करता हूं तो यह मुझे मिल जाता है, लेकिन मैं अंतर्यात्रा चाहता हूं।
मैं उन सभी तत्वों का चयन करना चाहता हूं जिनमें दो वर्ग हैं aऔर b।
<element class="a b">
तो, केवल उन तत्वों को जिनके पास दोनों वर्ग हैं।
जब मैं इसका उपयोग $(".a, .b")करता हूं तो यह मुझे मिल जाता है, लेकिन मैं अंतर्यात्रा चाहता हूं।
जवाबों:
यदि आप दोनों वर्गों (एक प्रतिच्छेदन, जैसे तार्किक और) के साथ केवल तत्वों का मिलान करना चाहते हैं , तो चयनकर्ताओं को बिना रिक्त स्थान के एक साथ लिखें :
$('.a.b')
आदेश प्रासंगिक नहीं है, इसलिए आप कक्षाओं को स्वैप भी कर सकते हैं:
$('.b.a')
तो ऐसे divतत्व का मिलान करने के लिए aजिसमें कक्षाओं के साथ एक आईडी है bऔर c, आप लिखेंगे:
$('div#a.b.c')
(व्यवहार में, आपको सबसे अधिक संभावना है कि विशिष्ट प्राप्त करने की आवश्यकता नहीं है, और एक आईडी या कक्षा चयनकर्ता आमतौर पर पर्याप्त है $('#a'))।
bऔर cगतिशील रूप से जोड़ रहे हैं, और आप केवल अगर यह उन वर्गों है तत्व का चयन करना चाहते हैं।
.a .bकक्षा वाले तत्वों की खोज करता है जो वर्ग के साथ bएक तत्व के वंशज हैं a। तो कुछ ऐसा div aहोगा जो केवल उन aतत्वों को वापस करेगा जो एक तत्व के अंदर हैं div।
आप filter()फ़ंक्शन का उपयोग करके ऐसा कर सकते हैं :
$(".a").filter(".b")
.aऔर कई बार आधारित विभिन्न मनमानी वर्गों को फ़िल्टर करने की आवश्यकता है जो मूल .aसेट से संबंधित हैं ।
मामले के लिए
<element class="a">
<element class="b c">
</element>
</element>
आपको बीच .a- बीच में जगह डालनी होगी.b.c
$('.a .b.c')
$('.a .c.b')भी काम करेगा?
$('.a > element')
आपके पास जो समस्या है, वह यह है कि आप एक का उपयोग कर रहे हैं Group Selector, जबकि आपको एक का उपयोग करना चाहिए Multiples selector! अधिक विशिष्ट होने के लिए, आप का उपयोग करते समय $('.a, .b')आपको उपयोग करना चाहिए $('.a.b')।
अधिक जानकारी के लिए, चयनकर्ताओं को यहां जोड़ने के लिए विभिन्न तरीकों का अवलोकन देखें!
सभी <h1>तत्वों और सभी <p>तत्वों और सभी <a>तत्वों का चयन करें :
$('h1, p, a')
कक्षाओं के साथ सभी <input>तत्वों का चयन करें और :type textcodered
$('input[type="text"].code.red')
<i>तत्वों के अंदर सभी तत्वों का चयन करें <p>:
$('p i')
उन सभी <ul>तत्वों का चयन करें जो किसी <li>तत्व के तत्काल बच्चे हैं :
$('li > ul')
उन सभी <a>तत्वों का चयन करें जिन्हें <h2>तत्वों के तुरंत बाद रखा गया है:
$('h2 + a')
उन सभी <span>तत्वों का चयन करें जो तत्वों के भाई-बहन <div>हैं:
$('div ~ span')
$('.a .b , .a .c').css('border', '2px solid yellow');
//selects b and c
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="a">a
<div class="b">b</div>
<div class="c">c</div>
<div class="d">d</div>
</div>
वेनिला जावास्क्रिप्ट समाधान: -
document.querySelectorAll('.a.b')
समूह चयनकर्ता
body {font-size: 12px; }
body {font-family: arial, helvetica, sans-serif;}
th {font-size: 12px; font-family: arial, helvetica, sans-serif;}
td {font-size: 12px; font-family: arial, helvetica, sans-serif;}
यह बन जाता है:
body, th, td {font-size: 12px; font-family: arial, helvetica, sans-serif;}
तो आपके मामले में आपने समूह चयनकर्ता की कोशिश की है, जबकि इसका एक चौराहा है
$(".a, .b")
इसके बजाय इसका उपयोग करें
$(".a.b")
आप getElementsByClassName()जो चाहते हैं उसके लिए विधि का उपयोग कर सकते हैं।
var elems = document.getElementsByClassName("a b c");
elems[0].style.color = "green";
console.log(elems[0]);
<ul>
<li class="a">a</li>
<li class="a b">a, b</li>
<li class="a b c">a, b, c</li>
</ul>
यह सबसे तेज उपाय भी है। आप यहाँ उस बारे में एक बेंचमार्क देख सकते हैं ।