2010-06-15 12 views
5

Ho bisogno di un modo per jQuery per restituire tutti gli elementi che hanno il cssjQuery - Come selezionare tutti gli elementi a cui è stata applicata una serie di caratteri?

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

applicato a loro.

Sto pensando che l'unico modo per farlo è il collegamento ciclico di tutti gli elementi e il controllo della presenza di questo css su di esso. Sembra un modo lento di farlo?

C'è un modo per farlo tramite un selettore jQuery?

+0

ti importa specificamente di questa stringa esatta - 'font-family: AvantGardeITCbyBT-Bold, sans-serif;', o alla ricerca di elementi che utilizzano questi tipi di carattere, il che significa un elemento utilizzando un 'font-family' di' family: AvantGardeITCbyBT-Bold, sans-serif, Arial' corrisponderà pure. – Anurag

+0

Sto cercando qualsiasi elemento che utilizza il carattere 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}); Questo funziona ma c'è un modo migliore? – Brady

risposta

3

bene, è possibile estendere i selettori di 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'); 
    } 
});  
}); 

e quindi chiamare

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

o

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

per esempio.

esempio funzionante: http://jsbin.com/idova3/edit

+0

Non sono riuscito a farlo funzionare. – Brady

+0

http://block.pd.alphaready.com/ impossibile far funzionare il tuo codice ... – Brady

+0

'$ (': AvantGardel')' sarà morto lento. – James

Problemi correlati