【问题标题】:Finding a visible class element within a parent element [duplicate]在父元素中查找可见的类元素[重复]
【发布时间】:2014-05-29 21:14:26
【问题描述】:

如何使用 jQuery 在父元素中找到可见的子元素?

试过了,例如以下(以及许多其他)不起作用。

var childelement = $("#parent").find(".child:visible");

父元素中有很多子元素,但同时只有一个可见。所有子元素都使用相同的类名定义。

编辑: 在我的代码中,子元素使用 display 属性定义为可见或不可见。与以下类似:

<span class="child" style="display: inline;">One</li>
<span class="child" style="display: none;">Two</li>

解决方案 得到它的工作与这个:

<div class="child" style="display: inline;">One</li>
<div class="child" style="display: none;">Two</li>

【问题讨论】:

  • 我在示例中添加了更多代码。见上文。
  • 其实我一开始就使用了span元素。那个有问题。将其更改为 div ,现在它可以工作了。我没有在这里复制粘贴整个代码,因为它非常复杂。现在它起作用了。往上看。无论如何谢谢:)

标签: javascript jquery


【解决方案1】:

这是你的做法:

$('#parent').find(':visible');

jsFiddle

【讨论】:

  • 但我想找到一个可见的 .child 类。 #parent 中还可以有其他可见元素。您的代码很好,但它会在 #parent 中找到所有可见的类。
  • 好的,当我使用你的例子时它仍然有效:jsfiddle.net/xqc4v/1
  • 在我的代码中,子元素通过 display 属性定义为可见或不可见。如下图所示:
  • 一个
  • 好的,但它仍然有效:jsfiddle.net/xqc4v/5 如果它适合您,请花两秒钟时间接受我的回答。 :)
  • 【解决方案2】:

    你可以这样做Fiddle

    $("#parentElement").children(':visible'); 
    

    【讨论】:

      【解决方案3】:

      大概是这样的:

      • 获取父元素的所有子类元素

        var childElements = $("#parent .child");
        
      • 找到你想要的元素:

        var foundIt;
        
        childElements.each(function(){ 
        
         if(this.is(':visible')){
        
            foundIt = this;
        
         }
        
        });
        

      参考资料:

      编辑:

        if(this.is(':inline')){
      
              foundIt = this;
      
           }
      

      【讨论】:

        猜你喜欢
        相关资源
        最近更新 更多
        热门标签