【问题标题】::visible length returning 0 when item is visible:当项目可见时,可见长度返回 0
【发布时间】:2013-04-20 07:57:11
【问题描述】:

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

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

【问题讨论】:

  • @MikeSamuel 我添加了周围的代码以获得更多上下文。

标签: javascript jquery


【解决方案1】:

你试过了吗:

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

编辑

其实应该是这样的:

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

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

【讨论】:

  • 我在每个容器下都有多个 srcprojects。因为它是搜索,所以部分或全部将被隐藏。如果容器下的 srcprojects 都不可见,我想要的是隐藏兄弟姐妹。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-11-20
  • 1970-01-01
  • 2012-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多