首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery -显示单个表行中多个数量的总计

jQuery -显示单个表行中多个数量的总计
EN

Stack Overflow用户
提问于 2015-03-23 20:45:25
回答 1查看 118关注 0票数 0

我正在为批发使用做一个简单的定单,它显示实时更新的总数。每行价格保持不变。这是我目前所处的位置:

http://jsfiddle.net/80sgr4xr/

然而,现在,每当输入一个新的数量时,总更新将显示该特定数量的总计。所以,如果我们加了1毫克蜂蜜和2-3毫克蜂蜜,总数应该是3*5= 15。然而,现在它只计算最后输入的数量--如果这是合理的话。

我有什么办法让它正常运作吗?下面是我现有的jQuery:

代码语言:javascript
复制
function getTotal(){
    var total = 0;
    $('.sum').each(function(){
        total += parseFloat(this.innerHTML)
    });
    $('#total').text(total);
}

getTotal();

$('.qty').keyup(function(){
    var parent = $(this).parents('tr');
    var price = $('.price', parent);
    var sum = $('.sum', parent);
    var value = parseInt(this.value) * parseFloat(price.get(0).innerHTML||0);
    sum.text(value);
    getTotal();
})
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-23 21:04:52

您可以通过以下方式简化它:

代码语言:javascript
复制
$('.qty').keyup(function () {
    var rowSum = 0;
    $(this).closest('tr').find('input.qty').each(function () {
        if (this.value.length) rowSum += parseInt(this.value, 10);
    })
    var rowPrice = $(this).closest('tr').find('td.price').text();
    $(this).closest('tr').find('td.sum').text((rowSum * rowPrice).toFixed(2))
})

jsFiddle实例

您没有正确地迭代输入,只保留了最后一个值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29220022

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档