Javascript 如何使用jquery删除ul列表中的空li?
我有以下HTML结构:Javascript 如何使用jquery删除ul列表中的空li?,javascript,jquery,Javascript,Jquery,我有以下HTML结构: <ul> <li><a>one</a></li> <li><a>two</a></li> <li></li> <li><a>three</a></li> <li><a>four</a></li> &l
<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
元素(
)
在jQuery中如何实现这一点
$('li').each(function(){
if($(this).html() == "" || typeof($(this).html())=="undefined")
{
$(this).remove
}
})
我建议您在比较之前修剪html,这样您就不会计算:
<li>
</li>
未经测试,所以如果不适合你,请告诉我
$('li').each(function() {
var li = $(this);
if (li.html() == '') {
li.remove();
}
});
只需要一个jQuery选择器
$("ul li:empty").remove();
您可以使用
过滤器
方法运行自定义函数以查找要删除的元素:
$('ul li').filter(function(){ return $(this).text() == '' }).remove();
应能够使用选择器:
$('li:empty').remove();
尝试以下操作:
$('li').filter(function() { return !$(this).html(); }).remove();
我也会选择这种方式,但请您解释一下为什么添加了
typeof($(this).html())==“undefined”
?以防止IE出现问题。html
方法是一种方法,而不是属性。
$('li:empty').remove();
$('li').filter(function() { return !$(this).html(); }).remove();
$('ul li:empty').remove();
//OR
$('ul li').filter(function() {return $(this).text() == '';}).remove();