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] &lt; 0 ? 0 : values[i]); 仅供参考 - ***.com/questions/10270351/… 这不是 if/else 语句在 Javascript 中的工作方式。 试试document.getElementById("div").innerHTML = "Value: " + (values[i]&lt;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] &lt; 0)? 0 : values[i];

【讨论】:

以上是关于Javascript:document.getElementById.innerHTML 中的 if-else 语句不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Anchor 对象和document对象

使用 javascript 将画布添加到页面

如何使用 JavaScript 在 div 中插入多个元素?

用星号javascript/jquery替换数字?

Javascript 在按钮单击时清除表单字段

selenium-JavaScript的处理