检查 div 是不是使用 jQuery 隐藏

Posted

技术标签:

【中文标题】检查 div 是不是使用 jQuery 隐藏【英文标题】:Check div is hidden using jQuery检查 div 是否使用 jQuery 隐藏 【发布时间】:2012-01-19 00:48:08 【问题描述】:

这是我的 div

<div id="car2" style="display:none;"></div>

然后我有一个显示按钮,当您单击时会显示 div:

$("show").click(function() 
    $("$car2").show();
); 

所以现在我想在提交表单之前检查 div #car2 是否仍然隐藏:

if($('#car2').is(':hidden')) 
    alert('car 2 is hidden');

现在问题来了。虽然 div #car2 已经显示,但我仍然收到警告消息,这意味着 jQuery 假定 div #car2 仍然隐藏。

我的 jQuery 版本是 1.7。

谢谢。

编辑:

正如jasper所说,我的代码是正确的,可以通过这个demo运行。

我怀疑与我在表单中使用的jQuery form to wizard plugin 存在一些冲突。任何人有任何想法来解决这个问题?

【问题讨论】:

jsfiddle.net/YjP4K/2 您的代码在简化后确实有效,所以您可能在其他地方有错误? 另见Checking if an element is hidden [by jquery] 【参考方案1】:

您可以检查 CSS display 属性:

if ($('#car').css('display') == 'none') 
    alert('Car 2 is hidden');

这是一个演示:http://jsfiddle.net/YjP4K/

【讨论】:

虽然其他答案是正确的,但不知何故我只能在我的表单中使用这种方法,所以我会选择这个作为答案。谢谢。 $('#car').is(:hidden) 应该可以工作。这也是比当前解决方案更清洁的解决方案。查看更多api.jquery.com/hidden-selector @akshay 是的,这更具有语义意义。我认为在某些极端情况下进行自己的检查是有意义的,因为元素周围存在与:hidden:visible 选择器相关的条件。 @akshay 您忘记了 :hidden 上的引号。应该是 $('#car').is(':hidden')【参考方案2】:

试试:

if(!$('#car2').is(':visible'))
  
    alert('car 2 is hidden');       

【讨论】:

【参考方案3】:

试试

if($('#car2').is(':hidden'))
  
    alert('car 2 is hidden');       

【讨论】:

【参考方案4】:

尝试检查 :visible 属性。

if($('#car2').not(':visible'))

    alert('car 2 is hidden');       

【讨论】:

【参考方案5】:

您是否注意到您的拼写错误,$car2 而不是 #car2

无论如何,:hidden 似乎工作正常,试试here。

【讨论】:

【参考方案6】:

你可以使用,

if (!$("#car-2").is(':visible'))

      alert('car 2 is hidden');

【讨论】:

以上是关于检查 div 是不是使用 jQuery 隐藏的主要内容,如果未能解决你的问题,请参考以下文章

如何使用jquery检查一个元素是不是隐藏[重复]

“显示/隐藏”一个带有javascript而不是jquery的div,而不是display:none

在 jQuery 验证中忽略所有隐藏的 div 但不是一个

如何检查元素是不是隐藏在 jQuery 中?

如何检查元素是不是隐藏在 jQuery 中?

如何检查元素是不是隐藏在 jQuery 中?