jquery json return 两个数相加的数据

jquery json return data adding two numbers

我正在使用 Jquery post 方法从 php 文件中获取数据,该文件返回一个多维数组,其中包含 productid、名称和价格,格式如下

[
    { product_id: 34, product_name: "Coca-Cola", price: 0.7 },
    { product_id: 24, product_name: "Shredded Beef Steak Wrap", price: 2.99 }
]

当我将它们相加时,这两个价格并没有加在一起,而是将它们连接起来。 这就是我尝试将它们加起来的方式

$.each(data, function(i, result) {
    //total  = total + +result.price;
    //total += +result.price;
    //total += result.price;
    //total += +total + +result.price;
    //total = total * 1 + result.price;
});
$("#cart_total").empty();
$("#cart_total").append(output);

知道我应该怎么做才能做到这一点吗

此致

试试这个:

total = Number(total) + Number(total.price);

发生连接是因为 total 必须是一个字符串,即使它 "contains" 是一个数字。换句话说:

'1' === 1

表示 javascript 中的 false

我们正在做的是将 total 字符串强制转换为数字:

Number('1') === 1

(true)

var data = [
    { product_id: 34, product_name: "Coca-Cola", price: 0.7 },
    { product_id: 24, product_name: "Shredded Beef Steak Wrap", price: 2.99 }
];

添加

var sum = 0;
data.forEach(function(i){ 
   sum += +i.price;  
});
$("#cart_total").empty();
$("#cart_total").append(sum);

You have to initialize total variable before loop started and you can perform your task.

total = 0;
$.each(data, function(i, result) {
    total  = total + result.price;
});
alert(total);

Demo

var data = [
    { product_id: 34, product_name: "Coca-Cola", price: 0.7 },
    { product_id: 24, product_name: "Shredded Beef Steak Wrap", price: 2.99 }
];

然后计算总和:

var total =  0;
$(data).each(function(index,item) {
    total += item.price;
});
total = parseFloat(total.toFixed(2))

显示:

$("#result").html(total);

这里的工作示例:http://jsfiddle.net/9jpdLkp2/

用户 parseInt 函数:

sum=parseInt(price)+parseInt(price);

首先初始化总计:总计= 0; 然后:

total += parseFloat(result.price);

试试这个!

试试这个...

var data = [
    { product_id: 34, product_name: "Coca-Cola", price: 0.7 },
    { product_id: 24, product_name: "Shredded Beef Steak Wrap", price: 2.99 }
];

var sum = 0;
data.forEach(function(i){ 
   sum =sum + +i.price;  
});
alert(sum);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>

试试这个

var total =  0;
$(data).each(function(index,item) {
    total += item.price;
});
total = parseFloat(total.toFixed(2));

toFixed(2)是限制小数点后两位数

希望对您有所帮助