使用jQuery删除空<li> </li>

时间:2012-07-20 12:54:24

标签: javascript jquery

  

可能重复:
  Remove Empty elements with jQuery

我想使用jQuery删除空<li>。我试图这样做,但我的代码不符合我的要求。我的代码如下所示。

脚本

$(document).ready(function(e) {
    $('#u li').each(function() {
        if($(this).html(' ')) {
            $(this).remove();
        }
    });
});

HTML

<ul id="u">
    <li>hi</li>
    <li></li>
</ul>

3 个答案:

答案 0 :(得分:5)

您正在将<li>的html设置为一个空格字符,而不是检查它是否为空。相反,试试这个(修剪可能是捕捉空格和换行符的好主意):

if(!$.trim($(this).html())) {
    $(this).remove();
}

此外,您可以使用jQuery的:empty选择器(这将检查包括文本节点在内的所有子节点):

$('#u li:empty').remove();

但是,这与“不可见文本节点”的元素不匹配,例如<li> </li>(一个空格)→jsfiddle

答案 1 :(得分:5)

应该如此简单:

$('#u li:empty').remove()

答案 2 :(得分:1)

<script>
    $(document).ready(function(e) {
        $('#u li').each(function() {
            if($(this).html().length == 0)
            {
                $(this).remove();
            }
        });
    });
</script>