Javascript:document.getElementById.innerHTML 中的 if-else 语句不起作用
Posted
技术标签:
【中文标题】Javascript:document.getElementById.innerHTML 中的 if-else 语句不起作用【英文标题】:Javascript: if-else statement in document.getElementById.innerHTML not working 【发布时间】:2015-01-17 16:00:57 【问题描述】:我正在打印 div 中的值数组的值。 我有以下运行良好的代码:
...
...
document.getElementById("div").innerhtml = "Value: " + values[i];
<div id="div">The Value will be displayed here.</div>
但是我的值数组中的一些值是负数,但我只想显示数组的正数。因此,如果一个数字为负数,则应改为 0。
我尝试了以下方法,但它不起作用:
...
...
document.getElementById("div").innerHTML = "Value: " + if (values[i] < 0) 0 else values[i];
任何线索或提示?我是 javascript 新手,不胜感激。
【问题讨论】:
"Value: " + (values[i] < 0 ? 0 : values[i]);
仅供参考 - ***.com/questions/10270351/…
这不是 if/else
语句在 Javascript 中的工作方式。
试试document.getElementById("div").innerHTML = "Value: " + (values[i]<0)? 0:values[i];
【参考方案1】:
也可以考虑Math.max
:
document.getElementById("div").innerHTML = "Value: " + Math.max(0, values[i]);
【讨论】:
【参考方案2】:使用ternary operator,作为:
var vals = (values[i] < 0 ) ? 0 : values[i];
document.getElementById("div").innerHTML = "Value: " + vals;
【讨论】:
【参考方案3】:if
语句不“返回”值;它们表示代码执行路径,如:
if this happens
do this
else
do that
您想根据条件连接 a 值,在您的情况下,三元运算符非常适合,因为它们返回给定条件的可能值
var returnedValue = (condition)? value-if-true : value-if-false;
在你的情况下:
var myValue = (values[i] < 0)? 0 : values[i];
document.getElementById("div").innerHTML = "Value: " + myValue;
或者把它们放在一起:
document.getElementById("div").innerHTML = "Value: " + (values[i] < 0)? 0 : values[i];
【讨论】:
以上是关于Javascript:document.getElementById.innerHTML 中的 if-else 语句不起作用的主要内容,如果未能解决你的问题,请参考以下文章