【问题标题】: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 存在一些冲突。任何人有任何想法来解决这个问题?

【问题讨论】:

标签: jquery hidden visible


【解决方案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');
          }
          

          【讨论】:

            猜你喜欢
            • 2010-11-16
            • 1970-01-01
            • 2019-01-23
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2023-04-01
            • 2020-01-25
            相关资源
            最近更新 更多