Javascript:document.getElementById.innerHTML中的if-else语句不起作用

时间:2014-11-19 22:58:05

标签: javascript innerhtml getelementbyid

我在div中打印出values-array的值。 我有以下代码,它运作良好:

...
...
document.getElementById("div").innerHTML = "Value: " + values[i];

<div id="div">The Value will be displayed here.</div>

然而,我的values-array中的一些值是负数,但我想只显示数组的正数。因此,如果数字为负数,则应改为 0

我尝试了以下但不起作用:

...
...
document.getElementById("div").innerHTML = "Value: " + if (values[i] < 0) {0} else {values[i]};

任何线索或提示?我是javascript的新手,非常感谢帮助。

3 个答案:

答案 0 :(得分:3)

使用ternary operator,如:

var vals = (values[i] < 0 ) ? 0 : values[i];
document.getElementById("div").innerHTML = "Value: " + vals;

答案 1 :(得分:3)

还要考虑Math.max

document.getElementById("div").innerHTML = "Value: " + Math.max(0, values[i]);

答案 2 :(得分:2)

if语句不会“返回”某个值;它们表示代码执行路径,如:

if this happens
   do this
else
  do that

你希望根据条件连接一个值,在你的情况下,三元运算符非常适合,因为它们在给定条件的情况下返回一个可能的值

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];