在我的HTML中,我有div这样的:
<div class="a b c"></div>
Run Code Online (Sandbox Code Playgroud)
在我的JavaScript中,我有一系列我感兴趣的类:
var goodClasses = ['a', 'c'];
Run Code Online (Sandbox Code Playgroud)
在优秀的浏览器中,我可以使用这个很棒的classList功能来测试我是否div有适当的类:
return div.classList.contains(goodClasses[0], goodClasses[1]);
Run Code Online (Sandbox Code Playgroud)
这没关系,但我真正想做的就是这样(语法很傻,但这是一般的想法):
return div.classList.contains.apply(div, goodClasses);
Run Code Online (Sandbox Code Playgroud)
有办法做到这一点吗?如果我不得不循环遍历我的课程数组,那就classList变得不那么酷了.
use*_*716 13
正如@Felix Kling正确指出的那样,classList.contains只接受一个参数.
如果您支持的浏览器支持该every()方法Array,您可以这样做:
return goodClasses.every( function( c ) {
return div.classList.contains( c );
});
Run Code Online (Sandbox Code Playgroud)
不支持它的浏览器可以使用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;
};
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9832 次 |
| 最近记录: |