使用Javascript + =运算符的正确方法

时间:2015-02-06 21:29:27

标签: javascript

我有这个HTML代码

<button id="pox" class="here click" value="10"> Posted </button>
<button id="pox1" class="here2 click" value="10"> Posted-Date</button>

这个样本JS代码

var one = document.getElementById("pox").value-=5; 
var one = document.getElementById("pox1").value+=5; 

问题是 - = 5返回一个5值,这是我想要的。但+ = 5返回105,如何让它返回15。

我添加 - = 5或+ = 5的目的是每次点击按钮时添加或减去5

1 个答案:

答案 0 :(得分:1)

如果要更改按钮的value,则不能使用简单的+=,因为该值是字符串,因此+=将连接它。如果使用简单变量,则更容易看到:

// normal numbers
var aNumber = 1;
aNumber += 5;  // aNumber = 6

// the left hand side is a string, so the right hand side is also converted to a string
var aString = "1";
aString += 5;  // aString = "15";

相反,在这种情况下,最好进行2次操作 - 解析值并将其分配给变量然后将其分配回来。

所以:

document.getElementById("pox").value = parseInt(document.getElementById("pox").value, 10) - 5;
document.getElementById("pox1").value = parseInt(document.getElementById("pox1").value, 10) + 5;

或更具可读性,您可以使用以下值存储和执行某些操作:

var one = parseInt(document.getElementById("pox").value, 10);
one -= 5;
document.getElementById("pox").value = one;

var two = parseInt(document.getElementById("pox1").value, 10);
two += 5;
document.getElementById("pox1").value = two;