JQuery में वर्ग चयनकर्ता नहीं


270

क्या एक विशिष्ट वर्ग के साथ तत्वों का चयन नहीं करने के लिए एक सरल चयनकर्ता अभिव्यक्ति है?

<div class="first-foo" />
<div class="first-moo" />
<div class="first-koo" />
<div class="first-bar second-foo" />

मैं सिर्फ पहले तीन तलाक और कोशिश करना चाहता हूं

$(div[class^="first-"][class!="first-bar"])

लेकिन यह सभी प्राप्त करता है क्योंकि अंतिम डिव में पहले से अधिक बार होते हैं। क्या ऐसी अभिव्यक्ति में प्लेसहोल्डर का उपयोग करने का कोई तरीका है? ऐसा कुछ

$(div[class^="first-"][class!="first-bar*"]) // doesn't seem to work

कोई अन्य चयनकर्ता जो मदद कर सकता है?


मेरी पूर्व टिप्पणी को खरोंचें, मैं सिर्फ सवाल फिर से लिखता हूं। क्रिटिकल क्लास है first-bar
BoltClock

यदि कोई ऐसे सभी तत्वों का चयन करना चाहता है जिनके पास या तो class1 या class2 नहीं है, तो $('div[class^="first-"]').not('.class1').not('.class2')
समवर्ती

जवाबों:


543

आपको :not()चयनकर्ता की आवश्यकता है :

$('div[class^="first-"]:not(.first-bar)')

या, वैकल्पिक रूप से, .not()विधि:

$('div[class^="first-"]').not('.first-bar');

91
ध्यान दें कि: नहीं () .not () ( jsperf.com/jquery-css3-not-vs-not ) से 2-3 गुना तेज है , आप उपयोग करना चाहते हैं: नहीं ()। हालाँकि, jQuery डॉक्स इसके बजाय .not () का उपयोग करने की सलाह देता है, क्योंकि यह अधिक पठनीय ( api.jquery.com/not-selector ) है। आशा है कि यह किसी को दोनों के बीच निर्णय लेने में मदद करता है!
रिनोगो

2
@rinogo अब यह जल्दी हो गया है कि अधिकांश ब्राउज़र क्वेरीस्लेटरऑल का समर्थन करते हैं, लेकिन यह हमेशा ऐसा नहीं रहा है।
लोन्सोमेडे

4
हाँ, बिल्कुल! :) मुझे उम्मीद है कि मेरी टिप्पणी आलोचना के रूप में नहीं आई; मैं बल्कि आपके पहले से ही उपयोगी प्रश्न को जोड़ना चाहता हूं।
rinogo

1
धन्यवाद!! अक्षम करें, लेकिन मेरे फ़िल्टरिंग बॉक्स पर सभी कुंजी दर्ज करें। $ ("इनपुट: नहीं (.rgFilterBox)")। कीडडाउन (फ़ंक्शन (ई) {if (e.keyCode == 13) {असत्य लौटा;} वापस लौटें;});
हार्डबा 11

3
@ डैनियल, हाँ, लेकिन अगर यह है , तो यह एक त्वरित प्रदर्शन को बढ़ावा देने के लिए एक सुपर आसान बदलाव है :)
rinogo

85

आप :notफ़िल्टर चयनकर्ता का उपयोग कर सकते हैं :

$('foo:not(".someClass")')

या not()विधि:

$('foo').not(".someClass")

और जानकारी:


3
"अगर यह एक सीएसएस चयनकर्ता के रूप में प्रयोग छोड़ देना चाहिए।
BoltClock

17
@ बॉलकॉक: इसमें उन रिक्त स्थानों के मानों की आवश्यकता होती है, मैंने इसे हमेशा के लिए निर्दिष्ट करने की आदत बना ली है :)
सरफराज
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.