Comprobando la visibilidad heredada del elemento DOM con jQuery

Si tengo el HTML a continuación:

<div style="display:none;">
    <span id="hello">Hey</span>
</div>

Y yo hago alert($("#hello").css("display"));, dirá "en línea". El lapso claramente no es visible, pero dado que no tiene directamente un display:none; propiedad en él, todavía dice que es visible.

¿Cómo pruebo si un determinado elemento DOM es realmente visible o no, incluso si su padre o un padre de su padre no se muestra?

preguntado el 29 de junio de 12 a las 19:06

4 Respuestas

Puedes usar:

if ($('#myitem').is(':visible')){

/*Do some sort of stuff in here */

}

Los elementos aún están animados (como usar .hide or .fadeOut) será "visible" hasta que se complete la animación

Respondido el 29 de junio de 12 a las 19:06

Puede utilizar el :visible selector, y el is método:

if($("#hello").is(":visible")) {
    //It's visible!
}

LA is método devuelve un valor booleano que indica si o no cualquier de los elementos coincidentes coinciden con ese selector.

Respondido el 29 de junio de 12 a las 19:06

Utilice la herramienta $(selector).is(':visible')

Respondido 04 Jul 12, 15:07

utilizar el Función .is() junto con la :oculto or :visible pseudoselectores:

http://jsfiddle.net/jbabey/ucSVx/

$('#hello').is(':hidden')

Respondido el 29 de junio de 12 a las 19:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.