2012-02-13 20 views
9

Estoy tratando de agregar un poco de código jQuery a todos los elementos que tienen posición: fijos establecidos en ellos. ¿Es posible este tipo de cosas? Sería muy útil si lo hubiera, así que no tengo que pasar por todo mi código y una clase extra para los objetos que están arreglados.jQuery Seleccionar elementos con un determinado CSS

Respuesta

22

Ésta debe cubrir todos los casos:

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

no tan rápido como la respuesta de qwertymk, sino también funcionará si la propiedad css se hereda de otra regla, como se demuestra here.

+0

Estaba a punto de publicar este mismo código exacto, ya que me encontré con él mientras jugueteaba con su código e hice lo mismo que tú, y funcionó. Perfectamente, muchas gracias –

+1

@mgibsonbr: Una mejor respuesta que la mía. +1 –

4

más rápido y más seguro que la respuesta de Colin:

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

Más sobre jQuery filter()

+3

solo curiosidad por saber lo que se devuelve cuando 'this.style' y' this.style.position === 'fixed' 'se escriben por separado? – kushalvm

+3

@MegaRacer es un control de protección, si 'this.style' está' undefined' 'this.style.position' arrojará un error' No se puede leer la posición de propiedad de undefined' ya que el compilador verifica de izquierda a derecha, si 'this.style === undefined' fallará la expresión antes de que '&&' no cause un error. –

Cuestiones relacionadas