javascript - 如何使用 jQuery 检查某个元素是否至少具有指定类列表中的一个类?

标签 javascript jquery syntax jquery-selectors

示例 html:

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

<div class="apple"></div>

我想循环遍历 div 并过滤掉它们,如果它们没有“红色”、“绿色”或“蓝色”类。

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

有没有办法填补上一行的空白来完成这个任务。或者我是否必须将列表颜色类放入数组中并执行循环?

如果需要任何说明,请告诉我。

最佳答案

所有的答案都很好并且很恰当。但是,如果您经常需要这样的函数,您也可以对 hasClass 方法进行 Monkey Patch 来执行您想要的操作:

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;
  }
};

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

$("div").hasClass(['red','green','blue']);
// or
$("div").hasClass('green');

Demo on JS Bin

关于javascript - 如何使用 jQuery 检查某个元素是否至少具有指定类列表中的一个类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3504795/

相关文章:

java - 如何使用 Java 上传 zip 文件?

javascript - 如何让 Nuxt-auth 和 Nuxt-i18n 成为 friend

javascript - 如何创建高性能选择器 [请不要使用 jquery]

c++ - 在每个分号后有一个带有反斜杠的 c++ 代码块是什么意思?

java - 自动缩进 Java 和 HTML 文件的脚本或程序

javascript - 如何在放大和缩小时保持 div 大小不变?

javascript - 如何在 HTML 页面上显示原始 JSON 数据

使用 $.when 时 jQuery 进度重复调用

c# - 在没有函数或类语法的情况下使用 C# 括号

syntax - 有哪些基于文件的Smalltalks语法?