2012-02-13 7 views
9

Sto provando ad aggiungere un po 'di codice jQuery a tutti gli elementi che hanno posizione: fissato su di essi. Questo tipo di cose è possibile? Sarebbe molto utile se c'è, quindi non devo passare tutto il mio codice e una classe extra agli oggetti che sono stati corretti.jQuery Seleziona elementi con un determinato CSS

risposta

22

Questo dovrebbe coprire tutti i casi:

$('*').filter(function() { 
    return $(this).css("position") === 'fixed'; 
}); 

non così rapidamente come risposta di qwertymk, ma anche funzionare se la proprietà css è ereditata da un'altra regola, come dimostrato here.

+0

Stavo per pubblicare questo stesso codice esatto, mentre mi sono imbattuto in esso mentre facevo casini con il suo codice e ho fatto la stessa cosa di te, e ha funzionato. Perfettamente, grazie mille –

+1

@ mgibsonbr: una risposta migliore della mia. +1 –

4

Più veloce e più sicuro di risposta di Colin:

$('*').filter(function(){ return this.style && this.style.position === 'fixed'; }); 

più su jQuery filter()

+3

solo curioso di sapere cosa viene restituito quando 'this.style' e' this.style.position === 'fixed' 'sono scritti separatamente? – kushalvm

+3

@MegaRacer è un controllo di protezione, se 'this.style' è' indefinito' 'this.style.position' genererà un errore' Can not read position position of undefined' poiché il compilatore verifica da sinistra a destra, se 'this.style === undefined' fallirà l'espressione prima che '&&' non causi un errore. –