0
$(document).ready(function () {

    //$('#customer_info #next_step').click(function() {

    $.getJSON("order/summary_process2.php?jsoncallback=?", function (data) {

        //loop through all items in the JSON array
        for (var x = 0; x < data.length; x++) {

            //create a container for each comment
            var div = $("<tr>").addClass("row").appendTo("#row");

            //add author name and comment to container
            $("<td>").addClass("space").text(data[x].item_name).appendTo(div);
            $("<td>").addClass("space").text(data[x].price).appendTo(div);
            $("<td>").addClass("space").text(data[x].qty).appendTo(div);
            $("<td>").addClass("space").text(data[x].tot_price).appendTo(div);
            //$("<div>").addClass("comment").text(data[x].comment).appendTo(div);

        }

        for (var i = 0; i < data.length; i++) {
            var total = 0;
            total = data[i].tot_price + total;
        }
        $("#total").html(total);

    });
});
//});
});

を使用してJSONいますが、合計金額を加算したいです。

残念ながら、結果は間違っています。

4

3 に答える 3

2

var total = 0ループから抜け出します。反復ごとにリセットします。

于 2012-09-13T09:44:39.617 に答える
1

変数のスコープはループにtotal限定されているため、このスコープの範囲外になります。代わりに、ループのに初期化してください。forundefined

var total = 0;
for (var i=0; i < data.length; i++)
{
  total = parseInt(data[i].tot_price, 10) + total;
}

また、あなたのコメントに基づいて、私はあなたが文字列を扱っていると仮定しているのでparseInt、合計に追加する前にそれらを解析するために使用する必要があります。

于 2012-09-13T09:44:46.940 に答える
0

for ループ スコープの外で total 変数を宣言する必要があります。 for ループ スコープでは、反復ごとに常に total を 0 に再割り当てします。

これを変える

for (var i=0; i < data.length; i++)
{
   var total = 0;
   total = data[i].tot_price + total;
}
$("#total").html(total);

var total = 0;
for (var i=0; i < data.length; i++)
{
    total += Number(data[i].tot_price);
}
$("#total").html(total);
于 2012-09-13T09:46:06.783 に答える