今天,我偶然发现了我的jquery代码的一些问题。基本上,我尝试计算动态创建的项目+数量,以得出其总价。
下面是我的初始代码:
var productPrice = $(".productPrice");
var productQuantity = $(".productQuantity");
var totalPrice = 0.00
$.each($('.product'), function(index, val) {
totalPrice += $(productPrice[index]).val() * $(productQuantity[index]).val()
$('#total').text(totalPrice.toFixed(2))
$('#total_price').val(totalPrice.toFixed(2))
})
$(productQuantity[index]).on('change', function() {
totalPrice = $(productPrice[index]).val() * $(productQuantity[index]).val()
$('#total').text(totalPrice.toFixed(2))
})
})
以上代码有效,但它们仅计算最后创建的项目。我偶然发现了一些解决方案,但没有找到(或者我错过了)。
答案 0 :(得分:-1)
最后,我找到了自己问题的答案。我需要做的是匹配更改后的数量和价格数组索引,然后返回所有数组价格*数量。
下面是我的工作代码:
productQuantity.each(function() {
$(this).keyup(function() {
var index = $(this).data("id")
calcTotal(index);
});
});
function calcTotal(id) {
var subTotal = 0.0
subTotal = $(productPrice[id]).val() * $(productQuantity[id]).val()
productQuantity.each(function(index, val) {
if (index == id) {
} else {
subTotal += $(productPrice[index]).val() * $(productQuantity[index]).val()
}
})
$('#total').text(subTotal.toFixed(2))
}
此代码可能有助于某些人无法计算购物车或动态创建的输入字段。