3

div の下に何も表示されていないかどうかを確認する if ステートメントがあります。表示されている場合は、子要素の兄弟を非表示にします。

        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 が表示されない場合、兄弟を非表示にすることです。

編集:コンテキストの周囲のコードを追加しました。

4

1 に答える 1