0

可能重复:
使用 jQuery 删除空元素

我想<li>使用jQuery删除空。我正在尝试这样做,但我的代码没有按照我的要求工作。我的代码如下所示。

脚本

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

HTML

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

3 回答 3

5

它应该很简单:

$('#u li:empty').remove()
于 2012-07-20T12:57:52.037 回答
5

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

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

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

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

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

于 2012-07-20T12:55:54.713 回答
1
<script>
    $(document).ready(function(e) {
        $('#u li').each(function() {
            if($(this).html().length == 0)
            {
                $(this).remove();
            }
        });
    });
</script>
于 2012-07-20T12:57:11.593 回答