2012-10-10 30 views
5

Si llamo a .hide() en un elemento, will/can jQuery lo seleccionará en un selector de dom normal.Will jQuery seleccionar elementos ocultos

Si jQuery normalmente selecciona elementos ocultos, ¿cuál es la forma correcta de seleccionar solo los elementos visibles? ¿Puedo usar un selector de CSS o hay una forma más válida de hacerlo?

+0

Esa es una de las ventajas de separar la estructura del estilo. –

+2

Realmente no entiendo por qué esta pregunta fue cerrada como no constructiva. Me parece que está haciendo una pregunta sí/no muy simple y luego pregunta por un método para lograr un objetivo muy específico. No entiendo por qué es probable que "solicite debate, argumentos, encuestas o discusiones extensas". No estoy necesariamente en desacuerdo, pero me gustaría entender qué criterio no cumplió esta pregunta. – Isochronous

Respuesta

3

Sí. La función hide solo almacena el valor actual de la propiedad display css de su elemento y luego lo establece en none. Por lo tanto, los selectores de dom no se verán afectados a menos que intenten hacer coincidir los elementos con un valor de css particular de display.

Compruébalo here.

Eche un vistazo a jQuery hide function documentation.

1

Sí, solo agrega una pantalla: sin estilo al elemento ... .remove() por otro lado no aparecerá en los conteos. Pero eso lo elimina por completo y, a menos que almacene el valor en alguna parte, no se puede recuperar.

Lo que supongo que quieres hacer es contar los elementos visibles. En su lugar, haría lo siguiente:

$('.element').addClass('hide'); 

var count_of_visible_items = $('.element:not(".hide")').length; 
console.log(count_of_visible_items); 
Cuestiones relacionadas