:当项目可见时,可见长度返回0

时间:2013-04-19 23:24:14

标签: javascript jquery

我有一个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都不可见,则隐藏兄弟姐妹。

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

1 个答案:

答案 0 :(得分:0)

你试过了吗?

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

修改

实际应该是这样的:

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

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