【发布时间】:2018-08-14 12:03:52
【问题描述】:
我正在寻找一种方法来确定 #container 的所有子 div 上是否都有 display:none。 I can't use :visible 因为container 本身是一个隐藏的面板,可以打开(使其可见)和关闭(再次隐藏)。
目标是在面板完全为空时删除“点击打开容器面板”文本,并在至少显示一个子 div 时再次显示。
不同的子 div 在我的代码的其他部分独立显示和关闭。
我试过了:
function check_if_all_divs_are_hidden()
{
if($('#container').children().css('display') == 'none') {
//hide text
}
else
{
//show text
}
}
但这不起作用,因为如果一个div具有display:none属性,它将隐藏文本,而只有当所有div都具有该属性时才应该隐藏文本。
【问题讨论】:
-
检查子 div 的总长度和具有 display none 属性的长度。如果它们相同,则隐藏文本。
-
给他们上课。隐藏时设置班级,计算该班级的孩子
-
@Abinthaha:我如何将
css('display') == 'none'与.length结合起来? -
您不能简单地在一行中完成。您需要遍历孩子并获取显示无属性的孩子的数量。但是通过
.find、.map等 es6 方法,这可以在一行中完成