可能重复:
使用jQuery删除Empty元素
我想<li>使用jQuery 删除空.我试图这样做,但我的代码不符合我的要求.我的代码如下所示.
脚本
$(document).ready(function(e) {
$('#u li').each(function() {
if($(this).html(' ')) {
$(this).remove();
}
});
});
Run Code Online (Sandbox Code Playgroud)
HTML
<ul id="u">
<li>hi</li>
<li></li>
</ul>
Run Code Online (Sandbox Code Playgroud)
您正在设置<li>一个空格字符的html ,而不是检查它是否为空.相反,试试这个(修剪可能是捕捉空格和换行符的好主意):
if(!$.trim($(this).html())) {
$(this).remove();
}
Run Code Online (Sandbox Code Playgroud)
此外,您可以使用jQuery的:empty选择器(这将检查所有子节点,包括文本节点):
$('#u li:empty').remove();
Run Code Online (Sandbox Code Playgroud)
但是,这与" 隐形文本节点 "的元素不匹配,例如<li> </li>(一个空格)→ jsfiddle.