Javascript 如果ul中没有li,则无法隐藏ul

Javascript 如果ul中没有li,则无法隐藏ul,javascript,jquery,Javascript,Jquery,我试图在页面上隐藏ul,并且使用ajax,因为网站的某些部分是基于ajax的 <ul class="sub-nav-20-m" id="filtersList_m"> </ul> 您可以使用CSS实现以下目的: .sub-nav-20-m:空{ 显示:无; } 请参见无论出于何种原因,首先检查空的LI标记并将其删除可能很有用,如果元素为空,则将其隐藏。作为一个单独的函数,您可以在window.onload之后或在ajax事务之

我试图在页面上隐藏ul,并且使用ajax,因为网站的某些部分是基于ajax的

<ul class="sub-nav-20-m" id="filtersList_m">

</ul>

您可以使用CSS实现以下目的:

.sub-nav-20-m:空{
显示:无;
}

请参见

无论出于何种原因,首先检查空的LI标记并将其删除可能很有用,如果元素为空,则将其隐藏。作为一个单独的函数,您可以在window.onload之后或在ajax事务之后调用它

window.onload=function(){
setTimeout(函数(){
hideEmptyULs()
}, 2000)
}
函数hideEmptyULs(){
$('ul')。每个(函数(){
$(this).children().each(function()){
if($(this.children().length==0)$(this.remove())
})
if($(this.children().length==0)$(this.hide())
});
}
ul{
边框:1px实心#ddd;
}


    但它不起作用,如果它的基于ajax的页面重新加载,它就不起作用您的代码与ajax无关。它使用的是jquery,它本身是正确的。你有错误吗?它被执行了吗?您是否收到显示的警报消息?
    window.onload = function(){
     alert("hi");
        $(".sub-nav-20-m").each(function(){  
        if($(this).children().length == 0){ 
            $(this).hide(); 
            
            } else{
            $(this).show();
            
            }
         }
    }