jquery - 当所有列表项都隐藏时隐藏整个列表

标签 jquery list hide

我有一个带导航的照片库。当您在导航中选择“照片”时,它会隐藏视频。当您单击“视频”时,它会隐藏照片。

在某些情况下,没有视频,我希望自动隐藏这些空行。

唯一的问题是,我不确定如何定位空行。

这是我的 HTML,其中一行没有视频:

<div id="right">
    <ul>
        <li id="gallery-all">All</li>
        <li id="gallery-photos">Photos</li>
        <li id="gallery-videos">Videos</li>
        <div class="clear"></div>
    </ul>
</div>
<div class="gallery-content" id="2012_national">
    <ul class="row">
        <li class="gallery-photo">
            <a class="group" title="" rel="" href="images/IMG_0672.jpg"><img src="files/photo.jpg" alt="" /></a>
            <p>Caption goes here</p>
        </li>
        <li class="gallery-photo">
            <a class="group" title="" rel="" href="images/IMG_1474.jpg"><img src="files/video.jpg" alt="" /></a>
            <p>Caption goes here</p>
        </li>
        <li class="gallery-photo">
            <a class="group" title="" rel="" href="images/IMG_1724.jpg"><img src="files/photo.jpg" alt="" /></a>
            <p>Caption goes here</p>
        </li>
        <li class="gallery-photo">
            <a class="group" title="" rel="" href="images/IMG_1725.jpg"><img src="files/video.jpg" alt="" /></a>
            <p>Caption goes here</p>
        </li>
        <div class="clear"></div>
    </ul>
</div>

这是到目前为止我的 jQuery:

//Hide empty rows
if($('.row').children(':visible').length == 0) {
    $('.row').hide();
};

有什么想法吗?

最佳答案

您可以通过简单地检查用于设置列表本身显示的匿名函数中可见子列表项的长度来隐藏/显示所有 .row 列表:

$(".row").css("display", function(){
  return $("li:visible", this).length ? "block" : "none" ;
});

关于jquery - 当所有列表项都隐藏时隐藏整个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10610800/

相关文章:

python - 如何仅对列表的 int 部分执行操作?

javascript - 从 javascript 文件加载 css 时,我应该如何在加载 css 文件之前隐藏 html 输出?

javascript - 单击品牌时 Bootstrap 导航栏不会设置事件页面

list - 列表的标准定义

javascript - JSON - 语法错误 : Unexpected token &

python - 如何用空格分隔符分割字符串列表?

WPF弹出隐藏问题

javascript - 根据选择选项显示 div

javascript - 如何获得正确的列索引和行索引?

使用大量元素和数组将 Javascript 重写为 DRY