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

时间:2012-08-24 21:34:53

标签: jquery html

我的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)

我不太确定发生了什么事,我试图得到我正在使用的那一行,但我失败了。任何帮助将非常感激。

3 个答案:

答案 0 :(得分:1)

$( '小计')文本(小计);其中有一个隐含的.each。这会导致您覆盖每个.subtotal行。用以下代码替换该行:

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

答案 1 :(得分:0)

使用类似的东西

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

});

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

答案 2 :(得分:0)

如果您正在使用.html,请参阅以下内容:<{3>}

其他明智地使用.prop api或.attr api获取值属性:http://jsfiddle.net/UpGWP/

希望它有助于满足需求!

此外,我已从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);
}​