दिलचस्प पोस्ट
जावा का अर्रे अनुक्रमणिका कहाँ है? कैसे 2 डी परिप्रेक्ष्य प्रक्षेपण में एक 3 डी बिंदु कन्वर्ट करने के लिए? क्यूडा कर्नेल को 3 डी सरणी भेजना विंडोज 7 पर पायथन पथ जोड़ना Django auto_now और auto_now_add प्रोल SAXParserException में सामग्री की अनुमति नहीं है स्लैश (/) बनाम टिल्ड स्लैश (~ /) asp.net में शैली पत्रक पथ में क्यों नहीं चार। स्ट्रिंग की तरह खाली है। खाली? आर में सभी कोष्ठक के अंदर जानकारी निकालें बफर्ड इमेज प्रत्येक रेंडरिंग से पहले साफ नहीं किया जा रहा है एक सरल वेब सर्वर के रूप में node.js का उपयोग करना लंबे समय तक विस्तृत प्रारूप में डेटा कैसे आकार देना है? अनुरोध इकाई बहुत बड़ा PHP कैसे एक पायथन datetime ऑब्जेक्ट सेकंड के लिए परिवर्तित करने के लिए कई तत्वों के लिए jQuery के समान क्लिक ईवेंट

jQuery hasClass () – एक से अधिक वर्ग की जांच करें

साथ में:

if(element.hasClass("class")) 

मैं एक वर्ग की जांच कर सकता हूँ, लेकिन क्या यह देखने का एक आसान तरीका है कि क्या "तत्व" में कई वर्ग हैं?

मै इस्तेमाल कर रहा हूँ:

 if(element.hasClass("class") || element.hasClass("class") ... ) 

जो बहुत बुरा नहीं है, लेकिन मैं कुछ की तरह सोच रहा हूँ:

 if(element.hasClass("class", "class2") 

कौन सा दुर्भाग्य से काम नहीं करता है

क्या ऐसा कुछ है?

वेब के समाधान से एकत्रित समाधान "jQuery hasClass () – एक से अधिक वर्ग की जांच करें"

कैसा रहेगा:

 element.is('.class1, .class2') 

element.is('.class1, .class2') काम करता है, लेकिन यह element.is('.class1, .class2') 35% धीमी है element.hasClass('class1') || element.hasClass('class2') element.hasClass('class1') || element.hasClass('class2')
यहां छवि विवरण दर्ज करें
यदि आप मुझे संदेह करते हैं, तो आप jsperf.com पर सत्यापित कर सकते हैं।
उम्मीद है कि किसी को यह मदद मिलेगी

 $.fn.extend({ hasClasses: function (selectors) { var self = this; for (var i in selectors) { if ($(self).hasClass(selectors[i])) return true; } return false; } }); $('#element').hasClasses(['class1', 'class2', 'class3']); 

यह करना चाहिए, सरल और आसान।

फिल्टर () एक और विकल्प है

उन मिलानकर्ता तत्वों के सेट को कम करें जो चयनकर्ता से मेल खाते हों या फ़ंक्शन के परीक्षण को पास करें।

 $(selector).filter('.class1, .class2'); //Filter elements: class1 OR class2 $(selector).filter('.class1.class2'); // Filter elements: class1 AND class2 

यहाँ एक उत्तर है जो $ (तत्व) के वाक्यविन्यास का पालन करता है। hasAnyOfClasses ("class1", "class2", "class3"):

 (function($){ $.fn.hasAnyOfClasses = function(){ for(var i= 0, il=arguments.length; i<il; i++){ if($self.hasClass(arguments[i])) return true; } return false; } })(jQuery); 

यह सबसे तेज नहीं है, लेकिन इसकी स्पष्ट और समाधान मैं पसंद करता हूं। बेंच: http://jsperf.com/hasclasstest/10

यह मेरे लिए काम किया

Hasclass के लिए यह

 element.hasClass('class1') || element.hasClass('class2') 

यह के लिए है

  element.is('.class1,.class2') 

इस बारे में कैसा है?

if (element.hasClass("class1 class2")

इस बारे में क्या,

 $.fn.extend({ hasClasses: function( selector ) { var classNamesRegex = new RegExp("( " + selector.replace(/ +/g,"").replace(/,/g, " | ") + " )"), rclass = /[\n\t\r]/g, i = 0, l = this.length; for ( ; i < l; i++ ) { if ( this[i].nodeType === 1 && classNamesRegex.test((" " + this[i].className + " ").replace(rclass, " "))) { return true; } } return false; } }); 

प्रयोग करने में आसान,

 if ( $("selector").hasClasses("class1, class2, class3") ) { //Yes It does } 

और यह तेज़ लगता है, http://jsperf.com/hasclasstest/7

व्हाट अबाउट:

 if($('.class.class2.class3').length > 0){ //... } 

यह मेरे लिए काम किया:

 $('.class1[class~="class2"]').append('something'); 

डिफ़ॉल्ट जेएस मैच () फ़ंक्शन का उपयोग करें:

 if( element.attr('class') !== undefined && element.attr('class').match(/class1|class2|class3|class4|class5/) ) { console.log("match"); } 

regexp में चर का उपयोग करने के लिए, इसका उपयोग करें:

 var reg = new RegExp(variable, 'g'); $(this).match(reg); 

वैसे, यह सबसे तेज़ तरीका है: http://jsperf.com/hasclass-vs-is-stackoverflow/22