Edit:
I got it reverse the first time, here is a better example code:
var requiredClasses = ['red', 'blue']; var relevant = $('#my_div span');
var requiredClasses = ['red', 'blue'];
var relevant = $('#my_div span');
var result = [];
elements_loop:
for(i = 0; i< relevant.lenght; ++){
var el = relevant[i];
var classList = el.attr('class').split(/\s+/);
$.each( classList, function(i, cls){
if (! $.inArray(cls, requiredClasses) {
//skip the element if any of its class is not in the set.
break elements_loop;
}
});
result.push(el);
}
return result;
The code can be optimized, just giving you the idea.