我有一个if语句来检查我的div下面是否有任何可见内容,如果有,我隐藏了子元素的兄弟姐妹。
var $remainingprojects = $searchproject.show().filter(function () {
var text = $(this).text().replace(/\s+/g, ' ').toLowerCase();
return !~text.indexOf(val);
}).parents('.srcprojects');
var $remainingprojectscontainer = $remainingprojects.parents('.projectscontainer');
$remainingprojects.hide();
$remainingprojectscontainer.each(function() {
if($(this).children('.srcprojects:visible').length == 0){//This line
console.log($(this).children('.projectschildren').html());
$(this).children('.projectschildren').hide();
$(this).children('.projectschildren').siblings('.destarrow').hide();
$(this).children('.projectschildren').siblings('.destproject').hide();
}
});
它似乎正在工作,但仍然隐藏了这个元素的子元素的兄弟姐妹:
<div class="srcprojects" style=""></div>
满足此条件的所有其他内容已将样式设置为display:none;
,如下所示:
<div class="srcprojects" style="display: none;"></div>
我在每个容器下都有多个srcprojects。因为它是搜索,所以会隐藏部分或全部内容。我想要的是,如果容器下的srcprojects都不可见,则隐藏兄弟姐妹。
编辑:添加了上下文的周围代码。
答案 0 :(得分:0)
你试过了吗?
$(this).children('.srcprojects').is('visible');
修改强>
实际应该是这样的:
$(this).children('.srcprojects').is(':visible');
这不适用于chrome中的某些内联元素。