2009-09-21 43 views
13

我想找出一个DIV是隐藏的或者它是否被暴露。JQuery - 如果DIV ID是可见的

这是伪代码:

 

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

任何JQuery的专家能帮助我吗?

感谢, 罗伯特

回答

4

下面会显示一个DIV命名myDiv如果它是隐藏的。请注意,如果您想执行其他操作,您也可以使用each()而不是在每个内部的$(this)上显示和执行其他操作。

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

这有点多余,不是吗? – nickf 2009-09-21 21:54:55

+0

@nickf:试图与给定的例子保持一致。 – tvanfosson 2009-09-21 21:57:20

1

这将测试,看看你是否选择id为 “mydiv” 任何隐藏要素:

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

编辑:简化选择。不得不看它:/

39

如果你想只是显示一个div是隐藏的,那么你实际上并不需要做任何检查都:

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

不管它的状态在事前已经显现出来了。

但是,如果你要取决于内容是否是可见或不可见的其他行动来执行,那么你就需要检查:

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

我不能保证这个测试的神圣性,但我只是把这三个函数扔进jsperf来看看发生了什么..好像.is:hidden是最好的! http://jsperf.com/is-the-div-hidden – 2014-05-01 15:56:23

26

其他所有的答案都很好,但是这仅仅是翻译伪代码转换为实际的Javascript代码:

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

如果你只希望隐藏和显示你可能也只是使用jQuery .toggle()方法,将做到这一点对你的元素。同样,.slideToggle()和.fadeToggle()方法将隐藏并显示具有幻灯片或淡入淡出动画的元素。