2010-06-15 17 views
5

Necesito una forma para que jQuery devuelva todos los elementos que tienen el cssjQuery: cómo seleccionar todos los elementos con una familia de fuentes establecida aplicada a ellos?

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

se les aplica.

Creo que la única manera de hacerlo es recorrer todos los elementos y comprobar si se aplica este CSS. Parece una forma lenta de hacerlo?

¿Hay alguna manera de hacerlo a través de un Selector jQuery?

+0

qué te importa específicamente acerca de esta cadena exacta - 'font-family: AvantGardeITCbyBT-Bold, sans-serif;', o en busca de elementos que están utilizando estas fuentes, lo que significa un elemento utilizando una 'familia de fuentes' de' familia: AvantGardeITCbyBT-Bold, sans-serif, Arial' coincidirá también. – Anurag

+0

Estoy buscando cualquier elemento que utilice la fuente AvantGardeITCbyBT-Bold – Brady

+0

$ ("*"). Cada uno (función() { \t \t if ($ (this) .css ("font-family") == "AvantGardeITCbyBT-Bold, sans-serif") { \t \t \t $ (this) .ieffembedfix();} \t \t \t}); Esto funciona, pero ¿hay una mejor manera? – Brady

Respuesta

3

así, puede ampliar los selectores de jQuery con

$(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'); 
    } 
});  
}); 

y luego llamar

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

o

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

por ejemplo.

ejemplo de trabajo: http://jsbin.com/idova3/edit

+0

No pude hacer que esto funcione. – Brady

+0

http://block.pd.alphaready.com/ no se pudo obtener el código para funcionar ... – Brady

+0

'$ (': AvantGardel')' va a ser muy lento. – James

Cuestiones relacionadas