jQuery hasClass() - check for more than one class
How about:
element.is('.class1, .class2')
filter() is another option
Reduce the set of matched elements to those that match the selector or pass the function's test.
$(selector).filter('.class1, .class2'); //Filter elements: class1 OR class2
$(selector).filter('.class1.class2'); // Filter elements: class1 AND class2
$.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']);
This should do it, simple and easy.
element.is('.class1, .class2')
works, but it's 35% slower than
element.hasClass('class1') || element.hasClass('class2')
See also this jsbench.me test.