1

配列があります。最初の要素の値は 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>";
}
4

8 に答える 8

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>";
}
于 2013-08-19T05:30:36.100 に答える
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>";
}
于 2013-08-19T05:39:54.333 に答える
2

int に変換してみる

quantityArray[0] = parseInt(quantityArray[0]);
quantityArray[0] += 1;

私が見る問題は、配列項目を として初期化していることです""

なんで?として設定すると0、問題を回避できます: http://jsfiddle.net/rgvaT/2/

quantityArray[0]=0;
于 2013-08-19T05:28:59.117 に答える
2

あなたは試すことができます:

quantityArray[0]++;

これにより、カウンターにも1が追加されます。

于 2013-08-19T05:31:58.767 に答える
1

これを試して

quantityArray[0]=parseInt(quantityArray[0]) + 1;
于 2013-08-19T05:32:46.963 に答える
0
var test = new Array();
    test[0] = 1;
    test[0] += 1;
    test[0] += 1;
alert(test[0]); // output is 3. Its working fine.

あなたがしていることは、「文字列」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>";
}
于 2013-08-19T05:36:03.487 に答える