jQuery计算订单小计.我的结果为我的所有行提供了相同的小计



我在使用jquery函数时遇到了一个小问题。我正试图在给定价格的情况下计算小计,同时输入数量。

这是我的html片段:

<!-- Price -->
<td width="10%"><div class="price" value="0"></div></td>
<!-- Quantity -->
<td width="9%"><input class="quantity" type="text" value="0" size="1" onchange="updateTotal(this)"/></td>
<!-- Subtotal -->
<td width="5%"><div class="subtotal" value="0"></div></td>

还有我的jQuery函数:

function updateTotal(qty){
//Calculate Subtotal for each item
var quantity = $(qty).val();
var price = $('.price').html();
var subtotal = parseFloat(price) * parseInt(quantity);
$('.subtotal').text(subtotal);
//Calculate Grand Total
var sum = 0;
$('.subtotal').each(function(){
    sum += parseFloat($(this).text());
});
$('#grandTotal').html(sum);

}

我的结果:

!(http://i45.tinypic.com/16a7exy.png)
!(http://i48.tinypic.com/5vu9uf.png)

我不太确定发生了什么,我试图解决我正在处理的问题,但我失败了。任何帮助都将不胜感激。

$('.subtotal').text(小计);包含一个隐含的.each。这将导致您覆盖每一行小计。将该行替换为:,使其明确

$('.subtotal').each(function(){
this.text(subtotal);
});

使用类似的东西

$("#textbox").focusout(function () {
    updateTotal(value);
});

使用Jquery并从文本字段中获取值,当焦点不在时,函数只调用一次。Onchange导致了这个问题。

2件事如果您正在处理.html,请参见此处:http://jsfiddle.net/UpGWP/

另一种方式是使用.prop api或.attr api来获得值属性:http://jsfiddle.net/764J8/

希望它能帮助我们!

此外,我已经从div :) 中删除了href

代码

function updateTotal(qty) {
    //Calculate Subtotal for each item
    var quantity = $(qty).val();
    var price = $('.price').attr('value');
    alert(price);
    var subtotal = parseFloat(price) * parseInt(quantity);
    $('.subtotal').text(subtotal);
    //Calculate Grand Total
    var sum = 0;
    $('.subtotal').each(function() {
        sum += parseFloat($(this).text());
    });
    $('#grandTotal').html(sum);
}​

最新更新