我有以下HTML结构:
<ul>
<li><a>one</a></li>
<li><a>two</a></li>
<li></li>
<li><a>three</a></li>
<li><a>four</a></li>
<li></li>
<li><a>five</a></li>
</ul>
我需要删除没有任何内容的li
元素(<li></li>
)。
我如何在jQuery中执行此操作?
答案 0 :(得分:7)
答案 1 :(得分:3)
$('li').each(function(){
if($(this).html() == "" || typeof($(this).html())=="undefined")
{
$(this).remove
}
})
我建议你在比较之前修剪html,这样你就不会计算:
<li>
</li>
作为非空项目。
要修剪html,只需在.trim()
之后添加.html()
,即:
if($(this).html().trim() == "" || typeof($(this).html().trim())=="undefined")
答案 2 :(得分:2)
未经测试,请告诉我这是否对您不起作用。
$('li').each(function() {
var li = $(this);
if (li.html() == '') {
li.remove();
}
});
答案 3 :(得分:2)
答案 4 :(得分:1)
$('li').each(
function(){
if($(this).html().trim()==''){$(this).remove();}
}
);
答案 5 :(得分:1)
您可以使用filter
方法运行自定义函数来查找要删除的元素:
$('ul li').filter(function(){ return $(this).text() == '' }).remove();
答案 6 :(得分:1)
尝试以下方法:
$('li').filter(function() { return !$(this).html(); }).remove();
答案 7 :(得分:1)
$('ul li:empty').remove();
//OR
$('ul li').filter(function() {return $(this).text() == '';}).remove();