【问题标题】:Is it possible to make an element invisible to jquery [duplicate]是否可以使元素对 jquery 不可见 [重复]
【发布时间】:2016-03-01 18:40:33
【问题描述】:

我有两个具有相同类的输入字段字段,一个显示:无。我想查询不显示的输入字段的值:无。

编辑(举例)

<div id="Parent1" style="display:none">
  <p>
    <input type="text" class="title" value="">
  </p>
</div>

<div id="Parent2">
  <p>
    <input type="text" class="title" value="this is the one I want">
  </p>
</div>

js

$('.title').val();  

返回空白,因为第一个标题类为空。我想忽略第一个父级为 display:none 的标题。

【问题讨论】:

  • 关于你的问题,你的标题很混乱......
  • 也添加相应的HTML

标签: jquery jquery-selectors


【解决方案1】:

使用:visible选择器选择未隐藏的元素。

$('.class:visible')

注意:来自文档

如果元素占用了文档中的空间,则认为它们是可见的。可见元素的宽度或高度大于零。

带有visibility: hiddenopacity: 0 的元素被认为是可见的,因为它们仍然会占用布局中的空间。

【讨论】:

  • 要选择不可见的元素,请使用:hidden selector
  • 完美,谢谢。将我的 js 更改为 $('.title:visible').val(); 就可以了
【解决方案2】:

在 jquery 中有一个 :visible 选择器(和一个 :not() 选择器,即:not(:visible)

【讨论】:

    【解决方案3】:

    由于您有两个元素,您必须遍历它们并找到隐藏的元素。 我认为这个过程对我来说很有说服力:

    $('.class_el').each(function(el){
          if(el.hidden)
            //do something
    });

    您也可以使用 :visible 选择器,例如 !$(el).is(':visible') 而不是读取元素的属性。

    这是你的选择! 干杯!

    【讨论】:

      猜你喜欢
      • 2012-02-05
      • 1970-01-01
      • 2014-01-14
      • 1970-01-01
      • 1970-01-01
      • 2013-12-27
      • 2015-11-12
      相关资源
      最近更新 更多