比如说有一段html代码<ul>
    <li>123123</li>
    <li>123123</li>
    <li></li>
    <li>123123</li>
    <li></li>
</ul>现在第三个和第五个li的标记上是没有内容的,假设实际情况我不知道那个会没有内容,我想用javascript或者jquery实现一种将这种没有内容的li去掉变成如下<ul>
    <li>123123</li>
    <li>123123</li>   
    <li>123123</li>   
</ul>能给出具体的代码最好 

解决方案 »

  1.   

    <ul>
        <li>123123</li>
        <li>123123</li>
        <li></li>
        <li>123123</li>
        <li></li>
    </ul>
    <script type="text/javascript">
    $(function(){
        $("ul li:empty").remove();
    })
    </script>
      

  2.   

    $("li").each(function(index,element) {
    if($(element).text().length == 0) {
    $(element).remove();
    }
    });
      

  3.   

    纯js方法:<ul>
        <li>123123</li>
        <li>123123</li>
        <li></li>
        <li>123123</li>
        <li></li>
    </ul>
    <script type="text/javascript">
    var li=document.getElementsByTagName("li");
        for(var i=0;i<li.length;i++){
            if(li[i].innerHTML==""){
                li[i].parentNode.removeChild(li[i]);
            }
        }
    </script>
      

  4.   

    请问1楼大神 如果我只不要文本内容的 比如
    <li><a href=""></a></li> 我要 
    但是
    <li><a href="">asdad</a>asd</li>不要 那该怎么办 
      

  5.   

    额 上面的说反了<li><a href=""></a></li>不要
    <li><a href="">asdad</a>asd</li>要
      

  6.   

    $(function(){
        $("ul li").each(function() {
            if($(this).find("a").html()==''){$(this).remove()}
        });
    })
      

  7.   

    还有几种情况呢:
    <li><a href=""></a>asd</li>  要不要?
    <li>asd</li>  要不要?
    <li>   </li> 要不要?
    <li>&nbsp;</li> 要不要?
    ....
    按我的理解你是:判断li内只要输出看不到的内容就把li删除吧
    $(function(){
        $("ul li").each(function() {
            if($.trim($(this).text())==""){$(this).remove()}
        });
    })
      

  8.   

    <ul id="ulId">
        <li>123123</li>
        <li>123123</li>
        <li></li>
        <li>123123</li>
        <li></li>
    </ul>var uls = document.getElementById("ulId");
    var ulsInner = uls.innerHTML;
    ulsInner = ulsInner.replace(/\<li\>\<\/li\>);
    document.getElementById("ulId").innerHTML = ulsInner;
      

  9.   

    或者这样
    for (var i=0, len=document.getElementsByTagName("li").length; i<len; i++) {
        if (typeof document.getElementsByTagName("li")[i].innerText == "string") {
            if (document.getElementsByTagName("li")[i].innerText == "") {
                delete document.getElementsByTagName("li")[i];
            }
        } 
        if (typeof document.getElementsByTagName("li")[i].textContent == "string") {
            if (document.getElementsByTagName("li")[i].textContent == "") {
                delete document.getElementsByTagName("li")[i];
            }
        }  
    }
      

  10.   

    纯js写写也不错,锻炼下自己js水平,库用多了,对js水平提高帮助不大