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 が表示されない場合、兄弟を非表示にすることです。
編集:コンテキストの周囲のコードを追加しました。