在父元素中查找可见的类元素[重复]

Posted

技术标签:

【中文标题】在父元素中查找可见的类元素[重复]【英文标题】: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 ,现在它可以工作了。我没有在这里复制粘贴整个代码,因为它非常复杂。现在它起作用了。往上看。无论如何谢谢:) 【参考方案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;

 

);

参考资料:

https://api.jquery.com/each/

Detect if an element is visible

编辑:

  if(this.is(':inline'))

        foundIt = this;

     

【讨论】:

以上是关于在父元素中查找可见的类元素[重复]的主要内容,如果未能解决你的问题,请参考以下文章

CSS溢出隐藏与父元素位置可见的奇怪效果[重复]

在iframe窗体内 获取父级的元素;;在父窗口中获取iframe中的元素

让子元素在父元素中水平居中align-items

jQuery UI 可拖动 - 当内部元素大于父元素时,将内部元素约束在父元素中

在父元素中附加子元素?

子元素在父元素中垂直居中