$(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
,但我想添加总价格。
不幸的是,结果是错误的。
答案 0 :(得分:2)
将var total = 0
取出循环。你在每次迭代时重置它。
答案 1 :(得分:1)
变量total
的范围仅限于for
循环,因此它将在此范围之外undefined
。在循环之前初始化它:
var total = 0;
for (var i=0; i < data.length; i++)
{
total = parseInt(data[i].tot_price, 10) + total;
}
此外,根据您的评论,我假设您正在处理字符串,因此您需要使用parseInt
来解析它们,然后再添加到总计中。
答案 2 :(得分:0)
你应该在for循环范围之外声明你的总变量。在for循环范围中,它总是在每次迭代中重新分配总数为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);