如果<ul>元素没有<li>元素</li> </ul>,如何删除它们

时间:2013-07-27 16:02:31

标签: jquery css twitter-bootstrap

我是bootstrap和jQuery的新手,我目前正在使用bootstrap导航栏(多个子菜单)。我有一个PHP脚本,输出ul和li元素的导航。有一些ul元素没有li元素(某些子菜单没有进一步的子菜单)。因此没有li的ul,Bootstrap将它显示为一个我不想要的空菜单。

无论如何找到ul是否为空,因此改变CSS显示:none?我尝试过以下但不起作用:

$( "ul" ).each(function() {
    if($(this).html()==""){
        $(this).css('display','none');
    }
});

非常感谢。

2 个答案:

答案 0 :(得分:8)

尝试

$( "ul" ).not(':has(li)').remove()

演示:Fiddle

答案 1 :(得分:3)

试试:empty选择器:

$( "ul:empty" ).hide();

JSFiddle:http://jsfiddle.net/yGxj2/
但它有一些限制:

  

需要注意的一件重要事项:空(和:父)是那个孩子   元素包括文本节点。

这意味着如果您在代码innerHTML中有空格 - :empty将无法使用此代码。