3

我有一个 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。因为它是搜索,所以部分或全部将被隐藏。如果容器下的 srcproject 都不可见,我想要的是隐藏兄弟姐妹。

编辑:为上下文添加了周围的代码。

4

1 回答 1

0

你有没有尝试过:

$(this).children('.srcprojects').is('visible');

编辑

其实应该是这样的:

$(this).children('.srcprojects').is(':visible');

这不适用于 chrome 中的某些内联元素。

于 2013-04-19T23:35:35.257 回答