如何将类数组应用于classList.contains
How to apply an array of classes to classList.contains?
在我的HTML中,我有一个类似的div
:
<div class="a b c"></div>
在我的JavaScript中,我有一系列感兴趣的类:
var goodClasses = ['a', 'c'];
在好的浏览器中,我可以使用令人敬畏的classList
功能来测试我的div
是否具有合适的类:
return div.classList.contains(goodClasses[0], goodClasses[1]);
这没关系,但我真正想做的是这样的事情(语法很傻,但这是一般的想法):
return div.classList.contains.apply(div, goodClasses);
有办法做到这一点吗?如果我必须循环遍历我的类数组,那么classList
就不那么酷了。
classList.contains
只接受一个参数。
如果您支持的浏览器支持Array
上的every()
方法,则可以执行以下操作:
return goodClasses.every( function( c ) {
return div.classList.contains( c );
});
不支持它的浏览器可以使用MDC兼容性修复程序:
if (!Array.prototype.every)
{
Array.prototype.every = function(fun /*, thisp */)
{
"use strict";
if (this === void 0 || this === null)
throw new TypeError();
var t = Object(this);
var len = t.length >>> 0;
if (typeof fun !== "function")
throw new TypeError();
var thisp = arguments[1];
for (var i = 0; i < len; i++)
{
if (i in t && !fun.call(thisp, t[i], i, t))
return false;
}
return true;
};
}
这应该能在中工作
String(el.className).includes(class)
相关文章:
- 将函数的上下文应用于javascript变量
- 将CSS应用于printWindow.print();在Javascript中
- 如何将CSS(特别是填充/边距)应用于select下拉菜单的选项或optgroup
- $scope.apply()何时应用于angular
- Javascript非常简单:'阅读更多''显示较少'应用于Wordpress的功能
- 尝试应用于<tr>在ng单击中
- 如何将javascript仅应用于1个表单中的2个表单提交按钮中的1个
- 将脚本应用于Angular 2上的输入
- Json和$scope的角度之间的差异$eval应用于JSON字符串时
- 如何将参数应用于String.prototype.format函数
- 动态地将过滤器应用于 JSON.parse()
- $location更改不适用于ngchange,而是应用于ngclick
- 如何将 :empty 选择器应用于 XML 文档
- 如何仅在文本字段中有值时才将自定义过滤器应用于 ng-repeat
- 如何使用 JavaScript 将样式应用于 CKEditor 中的选定文本
- MongoDB 无法将$addToSet应用于 Meteor JS 中的非数组
- 将类应用于jquery ui对话框
- 将CSS应用于在JavaScript中创建的表-表的位置不正确
- 如果检查了输入,则将类应用于<身体>,没有jQuery
- 如何将类数组应用于classList.contains