如果一个元素至少有一个类,从指定的类列表中如何检查jQuery?

Lok*_*kar 2 javascript syntax jquery jquery-selectors

示例html:

<div class="red"></div>
<div class="green"></div>
<div class="blue"></div>

<div class="apple"></div>
Run Code Online (Sandbox Code Playgroud)

如果他们没有"红色","绿色"或"蓝色"类,我想循环遍历div并过滤掉它们.

var onlyColorDivs = $('div').hasClass( __________ );

有没有办法填写上一行中的空白来完成此任务.或者我是否必须将列表颜色类放在数组中并进行循环?

如果需要澄清,请与我们联系.

Dou*_*ner 7

所有的答案都很棒,也很合适.但是,如果您需要这样的功能,您还可以使用Monkey Patch hasClass方法来执行您想要的操作:

var _hasClass = $.fn.hasClass;
$.fn.hasClass = function (classNames) {
  if (!classNames || typeof classNames === "string" ) {
    return _hasClass.call(this, classNames); // Default behavior
  } else {
    // Take array and parse it for the filter method
    var classes = '.' + classNames.join(', .');
    return this.filter(classes).length > 0;
  }
};
Run Code Online (Sandbox Code Playgroud)

然后你可以像这样使用它:

$("div").hasClass(['red','green','blue']);
// or
$("div").hasClass('green');
Run Code Online (Sandbox Code Playgroud)

JS Bin上的演示