2016-11-06 59 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>

相關問題