我想使用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>
答案 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>