我想在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");
}
答案 0 :(得分:2)
不是检查空字符串,而是检查innerHTML
的长度是否大于0。
r.length > 0
如果字符串为空,则长度将返回0,如果innerHTML包含任何字符,则长度将返回大于0的值。
您目前使用r == ""
执行的操作是检查r是否为空,这就是显示“on if”警报的原因。
参见此示例
答案 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
代替innerHTMLvar r = document.getElementById('road').innerText || document.getElementById('road').textContent;