2009-01-14 9 views

Respuesta

41

Utilizando el filter function:

$('*').filter(function() { 
    return $(this).css('float') == 'left'; 
}); 

Reemplazar '*' con los selectores apropiados para su caso.

+0

solución mucho mejor que la mía creo. – Genericrich

+0

Sí, +1 buena respuesta, pero para las corduras y las velocidades puede que desee reducir el campo de búsqueda a algo menos que '*' –

+1

Por supuesto, debe pasar los selectores relevantes para él :) –

-1

Bueno, no sé si abordaría esto de esta manera. ¿Por qué no cambiar el nombre de esos elementos con un ID o nombre de clase consistente y seleccionar eso?

Si eso no es una opción, esto debería funcionar:

this.getElementsByTagName('div').item(0).style.float = 'left'; 

creo.

+4

Esto no funcionará. Su código selecciona todos los divs, reduce la selección al primer div y luego establece su flotante a la izquierda. – yaauie

11

Esto va a ser lento. Me gusta REALMENTE lento. Si sabe que necesita seleccionar todos los elementos con un estilo CSS dado, verá un rendimiento mucho mejor al aplicar una regla CSS única adicional a cada elemento, y luego seleccionar por esa regla.

Va a ser MUCHO más rápido y más legible para arrancar.

CSS:

.float-left {float:left} 

Javascript:

$('.float-left'); 
+0

Acabo de regresar y leer esta pregunta nuevamente, y ahora estoy un poco avergonzado por ello. Esta definitivamente habría sido la mejor solución. No puedo imaginar por qué necesitaba seleccionar elementos como este ... – nickf

Cuestiones relacionadas