2010-09-25 4 views
1

Je dispose d'un tableau de sélecteurs CSSélément a au moins l'un des Sélecteurs

Je veux trouver si un élément a au moins l'un des sélecteurs CSS

Exemple:

var selectors = ['green', 'red', 'yellow'] 

<div id="elem1" class="red purple yellow white"></div> 
<div id="elem2" class="black white"></div> 

ma fonction doit retourner vrai et faux sur elem1 sur elem2

J'utilise prototypejs 1.7_rc2

Merci pour vos idées

Répondre

1
function matchesSomeSelectors(element, selectors) { 
    return selectors.some(function (selector) { 
     return Prototype.Selector.match(element, selector); 
    }); 
} 

http://jsfiddle.net/4p4LJ/

Je ne sais pas si some est disponible dans Internet Explorer ou les anciens navigateurs, mais vous pouvez facilement reproduire vous-même si nécessaire.

est ici la mise en œuvre de Mozilla si vous le souhaitez:

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; 
    }; 
} 
Questions connexes