2010-06-15 5 views
5

J'ai besoin d'un moyen pour que jQuery retourne tous les éléments qui ont le cssjQuery - Comment sélectionner tous les éléments avec une famille de polices set appliquée?

font-family: AvantGardeITCbyBT-Bold, sans-serif;

appliqué à eux.

Je pense que la seule façon de procéder est de boucler tous les éléments et de vérifier si ce CSS est appliqué. Semble une façon lente de le faire? Y at-il un moyen de le faire via un sélecteur jQuery?

+0

-vous soin spécifiquement au sujet de cette chaîne exacte - 'font-family: AvantGardeITCbyBT-Bold, sans-serif;', ou à la recherche d'éléments qui utilisent ces polices, ce qui signifie un élément à l'aide une «famille de polices» de 'family: AvantGardeITCbyBT-Bold, sans-serif, Arial' correspondra également. – Anurag

+0

Je cherche tout élément qui utilise la police AvantGardeITCbyBT-Bold – Brady

+0

$ ("*"). Each (function() { \t \t if ($ (this) .css ("font-family") == "AvantGardeITCbyBT-Bold, sans-serif") { \t \t \t $ (this) .ieffembedfix();} \t \t \t}); Cela fonctionne mais existe-t-il un meilleur moyen? – Brady

Répondre

3
bien

, vous pouvez étendre les sélecteurs jQuery avec

$(document).ready(function(){ 
    $.extend($.expr[':'], { 
    AvantGardel: function(elem){ 
     var $e = $(elem); 
     return(typeof $e.css('font-family') !== 'undefined' && $e.css('font-family') === 'AvantGardeITCbyBT-Bold'); 
    }, 
    SansSerif: function(elem){ 
     var $e = $(elem); 
     return(typeof $e.css('font-family') !== 'undefined' && $e.css('font-family') === 'sans-serif'); 
    } 
});  
}); 

puis appelez

$(':AvantGardel').hide(); 

ou

$(':SansSerif').hide(); 

par exemple.

exemple de travail: http://jsbin.com/idova3/edit

+0

Je n'ai pas réussi à faire marcher ça. – Brady

+0

http://block.pd.alphaready.com/ impossible de faire fonctionner votre code ... – Brady

+0

'$ (': AvantGardel')' sera mort lentement. – James

Questions connexes