里面没有li时,ul该如何隐藏?

时间:2018-11-14 15:33:58

标签: javascript jquery html

请允许我使用以下HTML:

<ul class="nested">
    <li>text</li>
    <li>text</li>
    <li>text</li>
</ul>

<ul class="nested">
</ul>

<ul class="nested">
    <li>text</li>
    <li>text</li>
    <li>text</li>
</ul>

我想检查哪个ul没有li,在页面加载后将其隐藏。

也可以使用jquery完成。

谢谢

3 个答案:

答案 0 :(得分:2)

您只需要CSS

  

:empty伪选择器将选择包含以下任一元素的元素   什么也没有,只有HTML注释。

div:empty {
   display: none;
}

来源https://css-tricks.com/almanac/selectors/e/empty/

答案 1 :(得分:1)

您可以使用以下jQuery做到这一点。

:if getfsize('/tmp/vim.err')>0|echo join(readfile('/tmp/vim.err'),"\|")|endif

或者,正如用户Rory McCrossan所建议的那样,编写起来要简单得多:

 window.onload = function(){ // When the page has finished loading.
    $(".nested").each(function(){ // Check every "nested" class 
    if($(this).children().length == 0){ // If this nested class has no children
        $(this).hide(); // This will hide it, but not alter the layout
        // $(this).css("display", "none"); // This will alter the layout
        } else{
        $(this).show();
        //$(this).css("display", "none"); // This will alter the layout
        }
     }
}

答案 2 :(得分:0)

要通过jQuery做到这一点,您可以在jQuery中使用$.each ...也有很多可能的选项可以解决此问题

$(".nested").each(function(index){
    if(!$(this).find("li").length){
        $(this).hide();
    }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="nested">
    <li>text</li>
    <li>text</li>
    <li>text</li>
</ul>

<ul class="nested">
</ul>

<ul class="nested">
    <li>text</li>
    <li>text</li>
    <li>text</li>
</ul>