javascript - 如果没有子元素,父元素应该隐藏

标签 javascript jquery

我有一个列表项。每个列表都包含类 .filter-tag。 当我点击每个 .filter-tag 时,它会隐藏起来。 这是示例: FIDDLE

但我想当所有列表项都被隐藏时,该列表项的 parent(.filter-tag-has-content) 也应该隐藏。意味着如果没有列表元素可见,父级也会隐藏,但如果可见,父级也应保持可见。

HTML

<div class="filter-tag-container">
    <ul class="filter-tag-has-content">
        <li class="filter-tag" id="fl-1">
            <span class="tag-name">Filter Option 1</span>
            <span class="fa fa-times"></span>
         </li>
        <li class="filter-tag" id="fl-2">
            <span class="tag-name">Filter Option 2</span>
            <span class="fa fa-times"></span>
        </li>
        <li class="filter-tag" id="fl-3">
            <span class="tag-name">Filter Option 3</span>
            <span class="fa fa-times"></span>
        </li>
        <li class="filter-tag" id="fl-4">
            <span class="tag-name">Filter Option 4</span>
            <span class="fa fa-times"></span>
        </li>
        <li class="filter-tag" id="fl-5">
            <span class="tag-name">Filter Option 5</span>
            <span class="fa fa-times"></span>
        </li>

    </ul>
</div>

JS

$('.filter-tag').click(function(){
    $(this).hide();
}); 

最佳答案

单击可见列表项时检查它们的长度。一旦没有剩余,隐藏列表。

$('.filter-tag').click(function(){
    $(this).hide();
    if(!$('.filter-tag:visible').length) $('ul.filter-tag-has-content').hide()
}); 

jsFiddle example

或者在多个容器上使用:

$('.filter-tag').click(function(){
    $(this).hide();
    if(!$(this).siblings(':visible').length)$(this).parent().hide()
}); 

jsFiddle example

关于javascript - 如果没有子元素,父元素应该隐藏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25329503/

相关文章:

javascript - 如何将位于单独文件中的模板与 mustache JS 一起使用?

javascript - Aurelia 中第三方库的依赖注入(inject) (di) 范例

javascript - 根据标识符生成一个特定的数组排列

javascript - AJAX 响应需要转换为 blob

jquery - 是否可以将 jquery ui 选项卡粘贴到 jquery ui 对话框中

javascript - 悬停在工具提示上时工具提示闪烁

javascript - Internet Explorer 现代化工具

javascript - VSCode 显示数组中的元素索引

javascript - 如何将自定义宽度保存到 cookie 中?

php - 从数据库中获取数据以在下拉列表中设置为默认值 HTML/CSS/MYSQL/PHP