Javascript 如何独立于父可见性(jQuery与否)检查元素可见性

Javascript 如何独立于父可见性(jQuery与否)检查元素可见性,javascript,jquery,Javascript,Jquery,我的第一个问题,所以请耐心等待。我有一个容器,其中包含不同数量的子元素,如下所示: <div class="parent"> <div class="element">content</div> <div class="element">content</div> <div class="element">content</div> </div> <div class=

我的第一个问题,所以请耐心等待。我有一个容器,其中包含不同数量的子元素,如下所示:

<div class="parent">
    <div class="element">content</div>
    <div class="element">content</div>
    <div class="element">content</div>
</div>
<div class="parent">
    <div class="element available">content</div>
    <div class="element unavailable">content</div>
    <div class="element unavailable">content</div>
</div>
不起作用

Background:可以切换父容器,子元素
的内容通过ajax请求获取,并在响应到达时填充。在我得到的每个响应中,子容器都会得到指示响应类型的特定类,例如
可用
不可用
等等。因此,生成的DOM可能如下所示:

<div class="parent">
    <div class="element">content</div>
    <div class="element">content</div>
    <div class="element">content</div>
</div>
<div class="parent">
    <div class="element available">content</div>
    <div class="element unavailable">content</div>
    <div class="element unavailable">content</div>
</div>

内容
内容
内容
这是一个模块,可多次用于不同的CSS文件。因此,我无法控制CSS实现是否实际上隐藏了
不可用的
元素,因为这只在CSS中完成。容器可以打开,但不必打开。但我必须知道,如果不打开容器,容器内部是否会有可见的元素。这可能吗


提前谢谢

这不是最好的答案,但我认为应该行得通

  if ($('.parent').is(':visible')) {
        $('.element:visible')....//what you want to do
    }else{
       $('.parent').show()
       $('.element:visible')...//what you want to do again
       $('.parent').hide()
    }

如果你有像available或unavailable这样的类,我不知道为什么你需要这样做。但我会这样做(这样实际的可见性不会影响孩子的可见性):

在行动中:


通常,如果父项不可见,则其子项是隐式的。是的,这是正确的,但可能有一种方法可以过滤掉继承的样式或规避此问题?@Orbling Implicit,但它们没有这样的样式。和/或检查
可见性
样式。你可能想检查你的答案是否有隐形的牙链,对我有效,并且不会改变父母。我之所以需要它,是因为我不知道
不可用
在CSS中是否可见。我仍然不理解它,但我很高兴这样做了。+1由于这个想法是经常使用的,删除继承的特征,独立检查它,然后恢复原始状态。这是一个很好的简单解决方案。我没有尝试它,因为我认为父容器将在短时间内可见,但它不会闪烁:)THX!我会接受@Emergency,因为它在不改变父项的情况下工作。