javascript - 元素至少有一个选择器

标签 javascript prototypejs

我有一个 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);
   }); 
}

http://jsfiddle.net/4p4LJ/

我不确定 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/

相关文章:

javascript - codeigniter 中的自动完成功能不显示任何内容

javascript - 将 unicode 字符转换为其字符

JavaScript/jQuery - 鼠标离开 Canvas 后程序继续绘制

javascript - 为什么 prototype.js 会干扰不相关的 javascript 操作?

javascript - 拖放原型(prototype)?

javascript - 使用ajax和json将数组从php发送到js

javascript - 是什么导致 Squarespace 站点中初始化为 = [] 的数组在第一次引用它之前用对象填充?

javascript - 在 for 循环中设置元素样式/属性

javascript - 获取已被观察的事件名称

javascript - 有必要手动删除事件处理程序吗?