我有一个 CSS 选择器数组
我想查找某个元素是否至少具有一个 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
上返回 false
我使用prototypejs 1.7_rc2
感谢您的见解
最佳答案
function matchesSomeSelectors(element, selectors) {
return selectors.some(function (selector) {
return Prototype.Selector.match(element, selector);
});
}
我不确定 some
在 IE 或更旧的浏览器中是否可用,但如果需要,您可以轻松地自己复制它。
如果您需要的话,这里是 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;
};
}
关于javascript - 元素至少有一个选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3795723/