我有一个CSS选择器数组
我想找出一个Element是否至少有一个CSS选择器
示例:
var selectors = ['green', 'red', 'yellow']
<div id="elem1" class="red purple yellow white"></div>
<div id="elem2" class="black white"></div>
我的函数应该在elem1
上返回true而在elem2
我使用prototypejs 1.7_rc2
感谢您的见解
答案 0 :(得分:1)
function matchesSomeSelectors(element, selectors) {
return selectors.some(function (selector) {
return Prototype.Selector.match(element, selector);
});
}
我不确定IE浏览器或旧浏览器中是否有some
可用,但如果需要,您可以自行轻松复制它。
如果你需要,这是Mozilla的实现:
if (!Array.prototype.some)
{
Array.prototype.some = function(fun, thisp)
{
var i = 0,
len = this.length >>> 0;
if (typeof fun != "function")
throw new TypeError();
var thisp = arguments[1];
for (; i < len; i++)
{
if (i in this &&
fun.call(thisp, this[i], i, this))
return true;
}
return false;
};
}