2016-11-06 57 views
-6

显示我的错误 为什么不行加 请帮助VAR =的document.getElementById( 'mynubervalue1')。innerHTML的+ 1

<div id="demo">5</div> 
<div id="demoshowplus"></div> 
<div id="demoshow"></div> 

var x = document.getElementById("demo").innerHTML; 
document.getElementById("demoshow").innerHTML = x - 2; 
document.getElementById("demoshowplus").innerHTML = x + 2; 

http://codepen.io/parazit/pen/woBpar

+3

欢迎堆栈溢出!请[参观],环顾四周,并仔细阅读[帮助],特别是[*我如何提出一个好问题?](/帮助/如何问)什么是坏的?你在'demoshowplus'中没有看到你期望的事实? –

+2

我猜这是[这个问题](http://stackoverflow.com/questions/3638074/adding-two-numbers-in-javascript-incorrectly) – vlaz

+0

不要尝试添加一个数字到一个字符串...参见'parseInt()'或'parseFloat()' – Tyr

回答

2

如果您遇到的问题你没有看到你期望的demoshowplus,这是因为x字符串,所以x + 2是字符串连接("5" + 2"52"),而不是添加。这不会影响另一个,因为-会将其操作数强制为数字(如果它们不是数字),但使用+进行加法和连接。

如果你要转换为数字第一,你有几种选择:

  • 使用一元++str
  • 使用parseInt(str)parseFloat(str)
  • 使用Number(str),它的工作原理是+str

This answer打破专业人士的细节使用各种不同的方式。

下面是一个使用+一个例子:

var x = +document.getElementById("demo").innerHTML; 
 
// -----^ 
 
document.getElementById("demoshow").innerHTML = x - 2; 
 
document.getElementById("demoshowplus").innerHTML = x + 2;
<div id="demo">5</div> 
 
<div id="demoshowplus"></div> 
 
<div id="demoshow"></div>

相关问题