Javascript 如果ul中没有li,则无法隐藏ul
我试图在页面上隐藏ul,并且使用ajax,因为网站的某些部分是基于ajax的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 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();
}
}
}