4645 votos

Comprobar si algo está escondido usando jQuery

En jQuery, es posible alternar la visibilidad de un elemento. Usted puede utilizar las funciones .hide(), .show() o .toggle().

Usando jQuery, ¿cómo se comprueba si un elemento está visible u oculto?

5972voto

Tsvetomir Tsonev Puntos 42030

Como la pregunta se refiere a un solo elemento, este código puede ser más adecuado:

// Checks for display:[none|block], ignores visible:[true|false]
$(element).is(":visible") 

Es igual que la sugerencia de twernt , pero aplicada a un elemento.

858voto

twernt Puntos 7182

Usted puede utilizar el selector hidden:

// Matches all elements that are hidden
$('element:hidden')

Y el selectorvisible:

// Matches all elements that are visible
$('element:visible')

501voto

Mote Puntos 2907
$(element).css('display') == 'none'

Las funciones no funcionan con el atributo de visibilidad 'visibility'.

302voto

aaronLile Puntos 1789

Ninguna de estas respuestas frente a lo que yo entiendo es la pregunta, que es lo que yo estaba buscando, "¿cómo puedo manejar los elementos que hayan visibility: hidden?". Tampoco :visible ni :hidden manejar esta situación, ya que ambos están buscando para mostrar por la documentación. Tan lejos como pude determinar, no hay selector para manejar CSS visibilidad. Aquí es cómo lo resolvió (estándar de selectores de jQuery, no puede ser más condensada de la sintaxis):

$(".item").each(function() {
    if ($(this).css("visibility") == "hidden") {
        // handle non visible state
    } else {
        // handle visible state
    }
});

200voto

user574889 Puntos 871

De ¿Cómo puedo determinar el estado de un elemento de tensado de la? :


Usted puede determinar si un elemento está inconsciente, o no mediante el uso de la :visible y :hidden selectores.

var isVisible = $('#myDiv').is(':visible');
var isHidden = $('#myDiv').is(':hidden');

Si usted está simplemente actuando sobre un elemento en base a su visibilidad, basta con incluir ":" o ":oculto" en el selector de expresión. Por ejemplo:

 $('#myDiv:visible').animate({left: '+=200px'}, 'slow');

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X