我有一个数组,第一个元素的值是1.
每次用户点击按钮时,我希望它增加1。 我写了这个,但它使数组元素从1到11变为111 ......依此类推。我怎么才能让它增加1.比如1,2,3 ......
function addCake (){
quantityArray[0] += 1;
var cost= quantityArray[0] * 1.49;
document.getElementById("cart").innerHTML += "<tr id="+"cakeTotal"+"><td>"+quantityArray[0]+"</td>Cake Donut</td><td>"+"$"+cost+"</td>";
}
答案 0 :(得分:3)
更改您的代码如下:
function addCake (){
quantityArray[0]=parseInt(quantityArray[0]) + 1;
var cost= parseInt(quantityArray[0]) * 1.49;
document.getElementById("cart").innerHTML += "<tr id="+"cakeTotal"+"><td>"+quantityArray[0]+"</td>Cake Donut</td><td>"+"$"+cost+"</td>";
}
答案 1 :(得分:2)
尝试将其转换为int
quantityArray[0] = parseInt(quantityArray[0]);
quantityArray[0] += 1;
我看到的问题是您将数组项目初始化为""
。
为什么呢?如果您设置为0
,则可以避免此问题:http://jsfiddle.net/rgvaT/2/
quantityArray[0]=0;
答案 2 :(得分:2)
无需调用parseInt等。只需正确初始化quantityArray
数组:
var quantityArray = [];
quantityArray[0] = 0;
function addCake (){
quantityArray[0]++;
var cost = quantityArray[0] * 1.49;
document.getElementById("cart").innerHTML += "<tr id="+"cakeTotal"+"><td>"+quantityArray[0]+"</td>Cake Donut</td><td>"+"$"+cost+"</td>";
}
答案 3 :(得分:1)
你可以尝试:
quantityArray[0]++;
这也会为你的柜台增加1个。
答案 4 :(得分:1)
试试这个
quantityArray[0]=parseInt(quantityArray[0]) + 1;
答案 5 :(得分:0)
var test = new Array();
test[0] = 1;
test[0] += 1;
test[0] += 1;
alert(test[0]); // output is 3. Its working fine.
您正在做的是将“String”1与之前的数组值连接起来。
要避免使用parseInt()将值转换为int。这样的事情。
function addCake (){
quantityArray[0] += parseInt(1, 10); // To decimal. It is very important
var cost= quantityArray[0] * 1.49;
document.getElementById("cart").innerHTML += "<tr id="+"cakeTotal"+"><td>"+quantityArray[0]+"</td>Cake Donut</td><td>"+"$"+cost+"</td>";
}
答案 6 :(得分:0)
我猜你已经将数组元素初始化为字符串。 使用下面的代码来增加元素。
quantityArray[0] = parseInt(quantityArray[0]) + 1;
答案 7 :(得分:0)
这里的问题是他们的数据类型
在 JavaScript 中,当您通过var x;
声明变量时,它将变量存储为var类型的对象。这就是导致问题的原因。
您需要将对象(var)转换为要执行的整数 通过类型转换的数学运算。你可以使用类型转换 (数字)功能。在其他情况下,它会将
+
视为附加 运算符和变量 String 会附加函数。
代码看起来像这样。
function addCake (){
quantityArray[0] =(Number)quantityArray[0]+1;
var cost= quantityArray[0] * 1.49;
document.getElementById("cart").innerHTML += "<tr id="+"cakeTotal"+"><td>"+quantityArray[0]+"</td>Cake Donut</td><td>"+"$"+cost+"</td>";
}