我正在尝试添加一个变量并在循环结束时获取总价并将其添加到span标记中的值并更新它。我不确定如何处理jquery,我通常用php来做。这是我尝试过但我一无所获。
$.each(data, function(key, obj) {
items.push('<li id="' + obj.id + '">' + obj.title + '€' + obj.price + '</li>');
totalprice += obj.price
});
$("#addonPrice").html($("#addonPrice").text() + totalprice);
答案 0 :(得分:4)
尝试以下方法:
var totalprice = 0;
$.each(data, function(key, obj){
items.push('<li id="' + obj.id + '">' + obj.title + '€' + obj.price + '</li>');
totalprice = totalprice + parseFloat(obj.price);
});
$('#addonPrice').html(parseFloat($('#addonPrice').text()) + totalprice);
您需要初始化总价并将价格/插件价格转换为浮点数,以便将其作为数字使用。
我希望这会有所帮助。
答案 1 :(得分:3)
您应该在循环之前将totalprice
初始化为零,并在添加之前将parseFloat()
应用于obj.price
:
var totalprice = 0;
$.each(data, function(key, obj) {
items.push('<li id="' + obj.id + '">' + obj.title + '€' + obj.price + '</li>');
totalprice += parseFloat(obj.price);
});
$("#addonPrice").html(parseFloat($("#addonPrice").text()) + totalprice);
答案 2 :(得分:3)
试试这个:
totalprice += parseInt(obj.price);
答案 3 :(得分:1)
您需要在循环之前实例化totalprice
,因为总价将不再存在于$.each
的上下文之外。
答案 4 :(得分:1)
有很多事情要做。首先,您没有显示totalprice
变量的初始化位置和方式。通常这应该在循环之外完成。其次,根据obj.price
的类型,您使用的+=
运算符可能会执行字符串连接而不是数字添加。此外,.text
函数返回一个字符串,因此您需要在循环结束时执行添加时将其强制转换为数字:
var totalprice = 0;
$.each(data, function(key, obj) {
items.push('<li id="' + obj.id + '">' + obj.title + '€' + obj.price + '</li>');
totalprice += Number(obj.price);
});
$("#addonPrice").html(parseFloat($("#addonPrice").text()) + totalprice);