2010-09-25 184 views
1

元素具有选择器

我想找到一个元素是否有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

感谢您的见解

回答

1
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; 
    }; 
} 
相关问题