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