使用javascript隐藏表格内的表格行元素

时间:2015-05-28 06:52:21

标签: javascript

我想在td没有值时隐藏表行,但是我的javascript函数失败了。它继续在" else"。

HTML

<table>
   <tr id="locOfWorkRow"> 
     <td><span>Location of Work</span></td>
   </tr>
   <tr>
     <td><span>This is the label</span></td>
     <td id="road"><span></span></td>
   </tr>
</table>

的Javascript

var r = document.getElementById('road').innerHTML; 

 if(r == ""){ alert("on if");
   document.getElementById('locOfWorkRow').style.display = "none";
 }else{
    alert("on else");
 }

7 个答案:

答案 0 :(得分:2)

不是检查空字符串,而是检查innerHTML的长度是否大于0。

r.length > 0

如果字符串为空,则长度将返回0,如果innerHTML包含任何字符,则长度将返回大于0的值。

您目前使用r == ""执行的操作是检查r是否为空,这就是显示“on if”警报的原因。

参见此示例

http://jsfiddle.net/9ny6598u/

答案 1 :(得分:0)

var r = document.getElementById('road').innerHTML;

if (r.length > 0) {
    alert("on if");
    document.getElementById('locOfWorkRow').style.display = "none";
} else {
    alert("on else");
}

<强> DEMO

答案 2 :(得分:0)

如果条件

,则使用错误

使用if(r!=&#34;&#34;)代替r ==&#34;&#34;

答案 3 :(得分:0)

  

其实你的if条件错了

示例http://jsfiddle.net/kevalbhatt18/bvop1gdq/

if(r !== ""){ alert("on if");
   document.getElementById('locOfWorkRow').style.display = "none";
 }else{
    alert("on else");
 }

或者

if (r.length > 0) {
    alert("on if");
    document.getElementById('locOfWorkRow').style.display = "none";
} else {
    alert("on else");
}

答案 4 :(得分:0)

希望你没有在页面尝试在页面末尾编写javascript之前加载你的javascript,这样元素就可用了,你就不会得到空引用。

并且通过innerhtml你得到了&#34; span Road 1 / span&#34;所以写那个条件。如果你将脚本加载到正文下面,它的工作正常。

确保在加载html后加载了脚本。

答案 5 :(得分:0)

使用undefined作为比较而不是空字符串,并使用===而不是==

if(r === undefined){ alert("on if");
  document.getElementById('locOfWorkRow').style.display = "none";
}else{
  alert("on else");
}

答案 6 :(得分:0)

您可以使用innerText或textContent

代替innerHTML
var r = document.getElementById('road').innerText || document.getElementById('road').textContent;