看看:http://jsfiddle.net/MLsAu/14/ 在Asp.Net page_load中,程序计算总和价格和总价格和总和折扣。但是当用户更改其中一个下拉列表值(产品数量)时,我想用jquery计算。我知道一些代码是错误的,但我不知道哪里出错了。例如,当用户将第一个项目数量从2更改为1时,SumPrice是错误的!
我测试了这段代码,但不行。
var sumPrice = 0;
$('tr').each(function () {
sumPrice += parseInt(quantity * parseInt($(this).closest('tr').find('.ffour').text()));
});
$('#txtSumPrice').html(sumPrice);
答案 0 :(得分:1)
您必须在每次更改事件中将总和,折扣和价格设置为0,否则它将采用最后一个可用值。请找到更正的小提琴here。
$('.drop').on('change',function () {
$('#txtSumDiscount').text('0');
$('#txtSumPrice').text('0');
$('#txtTotal').text('0');
var tr = $(this).closest('tr');
var price = $(tr).find('.ffour').html() - $(tr).find('.fthree').html();
$(tr).find('.fone').html(price * $(this).val());
var sum = 0, discount = 0, total =0;
$(this).closest('#dvCart').find('tr td.fone').each(function(){
var parent = $(this).parent();
var q = parseFloat($(parent).find('select.drop').val());
sum += parseFloat($(parent).find('td.ffour').text()) * q;
discount += parseFloat($(parent).find('td.fthree').text()) * q;
});
$('#txtSumPrice').html(sum);
$('#txtSumDiscount').html(discount);
$('#txtTotal').html(sum - discount);
});