簡體   English   中英

如何使用jquery刪除ul列表中的空li?

[英]How to remove empty li in ul list using 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>
    <li></li>
    <li><a>five</a></li>
</ul>

我需要刪除沒有任何內容的li元素( <li></li> )。

我怎么能在jQuery中做到這一點?

只有一個jQuery選擇器

$("ul li:empty").remove();

http://jsfiddle.net/acS9A/

$('li').each(function(){
if($(this).html() == "" || typeof($(this).html())=="undefined")
{
    $(this).remove
}
})

我建議你在比較之前修剪html,這樣你就不會計算:

<li>
</li>

作為非空項目。 要修剪html,只需在.html()之后添加.trim() .html()即:

if($(this).html().trim() == "" || typeof($(this).html().trim())=="undefined")

未經測試,請告訴我它是否適合您。

$('li').each(function() {
    var li = $(this);
    if (li.html() == '') {
      li.remove();
    }
});

應該可以使用選擇器:

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

http://jsfiddle.net/infernalbadger/4yf2t/

  $('li').each(
         function(){
             if($(this).html().trim()==''){$(this).remove();}
         }
  );

您可以使用filter方法運行自定義函數來查找要刪除的元素:

$('ul li').filter(function(){ return $(this).text() == '' }).remove();

請嘗試以下方法:

$('li').filter(function() { return !$(this).html(); }).remove();

$('ul li:empty').remove();
//OR
$('ul li').filter(function() {return $(this).text()​​​​​​​ == '';}).remove();​

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM