如何隐藏不包含文本的DOM元素?

时间:2015-03-18 22:39:03

标签: javascript html events dom

我想知道如果它不包含任何文本,如何在JavaScript中隐藏DOM元素,例如:

<ul>
  <li>Text</li>
  <li>Text</li>
  <li>Text</li>
  <li>Text</li>
  <li>Text</li>
  <li>Text</li>
  <li></li> <!-- Element to hide -->
</ul>

我目前写的:

var point = document.getElementsByTagName("li");
for(var i = 0; i < point.length; i++){
   if(point[i].text==""){
      point[i].style.display = "none";
   }
}

谢谢!

2 个答案:

答案 0 :(得分:1)

为什么不使用jQuery,它会消除浏览器差异:

$('li').each(function (){
    if($(this).html()==="") {
        $(this).css({"display":"none"});   
    }
});

答案 1 :(得分:0)

使用innerHTML属性并在对其进行检查之前先删除空格。

 if(!/[\S]/.test(point[i].innerHTML)) { 
    point[i].style.display = "none";
 }