2009-09-21 20 views
13

Estoy tratando de descubrir que un DIV está oculto o si está expuesto.JQuery - Si la ID de DIV es visible

Este es el pseudocódigo:

 

if(DIV != VISIBLE) // not visible 
{ 
    show content 
} 

Cualquier Expertos JQuery capaz de ayudarme?

Gracias, Robert

Respuesta

4

A continuación se mostrará un DIV nombrados myDiv si está oculto. Tenga en cuenta que si desea hacer otras cosas, también puede usar cada() en lugar de mostrar y realizar otras operaciones en $ (esto) dentro de cada una.

$('div#myDiv:hidden').show(); 
+0

eso es un poco redundante ¿no? – nickf

+0

@nickf: Solo trato de ser coherente con el ejemplo dado. – tvanfosson

1

Esto pondrá a prueba para ver si se ha seleccionado ningún elemento ocultos con el "mydiv" id:

if ($("#mydiv:hidden").length > 0) 
{ 
    // 
} 

Editar: Selector simplificado. Tenía que mirar hacia arriba:/

39

Si usted está tratando de simplemente mostrar un div que está oculto, entonces usted realmente no necesita hacer ningún control en absoluto:

$('#myDiv').show(); 

Independientemente de su estado de antemano, terminará siendo visible ahora.

Sin embargo, si desea realizar otras acciones en función de si el contenido es visible o no, entonces usted tendrá que comprobar:

if ($('#myDiv').is(":hidden")) 
// or 
if ($('#myDiv:hidden').length) 
// or 
if ($('#myDiv:not(:visible)')) { // you get the idea... 
    //perform your actions 
} 
+0

No puedo garantizar la santidad de esta prueba, pero acabo de lanzar estas tres funciones en jsperf para ver qué sucedió. Parece que .es: ¡oculto es lo mejor! http://jsperf.com/is-the-div-hidden –

26

Todas las demás respuestas están muy bien, pero esto es sólo para traducir el pseudocódigo en código Javascript real:

if (!$('div').is(':visible')) { 
    $('div').show(); 
} 
0

Si sólo está buscando para ocultar y mostrar un elemento puede ser que también acaba de usar jQuery .toggle() método que va a hacer eso para usted. Del mismo modo, los métodos .slideToggle() y .fadeToggle() ocultarán y mostrarán los elementos con una animación de deslizamiento o desvanecimiento.

Cuestiones relacionadas