Comprobando la visibilidad heredada del elemento DOM con jQuery

If I have the HTML below:

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

Y yo hago alert($("#hello").css("display"));, it will say "inline". The span is clearly not visible, but since it doesn't directly have a display:none; property on it, it still says it's viewable.

How do I test whether a certain DOM element is actually visible or not, even if its parent or a parent of its parent is not displaying?

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 */

}

Items still animating (like using .hide or .fadeOut) will be "visible" until the animation is complete

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!
}

El is method returns a boolean value indicating whether or not cualquier of the matched elements match that selector.

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

Utiliza $(selector).is(':visible')

Respondido 04 Jul 12, 15:07

utilizar el .is() function junto con la :oculto or :visible psuedoselectors:

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.