表中的总和数量和价格

时间:2016-12-01 13:58:13

标签: jquery sum

我有4-5个用PHP动态创建的表

<table class="table11">
  <tbody>
    <tr>
      <td>Name</td>
      <td class="quantity">2</td>
      <td class="price">20</td>
      <td class="sum_one">40</td>
    </tr>
    <tr>
      <td>Name</td>
      <td class="quantity">1</td>
      <td class="price">30</td>
      <td class="sum_one">30</td>
    </tr>
    <tr>
      <td></td>
      <td class="total_quantity">3</td>
      <td></td>
      <td class="total_sum">70</td>
    </tr>
  </tbody>
</table>

<table class="table11">
  <tbody>
    <tr>
      <td>Name</td>
      <td class="quantity">1</td>
      <td class="price">10</td>
      <td class="sum_one">10</td>
    </tr>
    <tr>
      <td>Name</td>
      <td class="quantity">2</td>
      <td class="price">10</td>
      <td class="sum_one">20</td>
    </tr>
    <tr>
      <td></td>
      <td class="total_quantity">3</td>
      <td></td>
      <td class="total_sum">30</td>
    </tr>
  </tbody>
</table>

我想在表中汇总所有价格并以total_sum显示。

我试过这个:

var sum = 0;
var quantity = 0;
var sum1 = 0;
$('.price').each(function() {
    var price = $(this);
    var q = price.closest('tr').find('.quantity').html();
    sum += parseInt(price.html()) * parseInt(q);
    quantity += parseInt(q);
    sum1 = 0;
    sum1 += parseInt(price.html()) * parseInt(q);
    price.closest('tr').find('.sum_one').html(sum1);
});

console.log(sum);

$('table.table11 tr:last-child').find('.total_sum').html(sum);

哪个不起作用,在控制台中记录总和,这是正确的,但在表中它不会改变。

如何使用相关的价格总和更新每个表中的总和?

当我动态删除行时,我希望总计相应地更新。

https://jsfiddle.net/qfjes1zj/ ....我将逐桌总结,而不是完整的总和。每张桌子总和。

2 个答案:

答案 0 :(得分:1)

为什么td称为 total_sum

<td class="total_sum">30</td>

然后您更新总价

$('table.table11 tr:last-child').find('.total_price').html(sum);

应该只是

$('.total_sum').html(sum);

答案 1 :(得分:0)

尝试:

$(document).ready( function(){
    var sum = 0;
var quantity = 0;
var sum1 = 0;
$('.price').each(function() {
    var price = $(this);
    var q = price.closest('tr').find('.quantity').html();
    sum += parseInt(price.html()) * parseInt(q);
    quantity += parseInt(q);
    sum1 = 0;
    sum1 += parseInt(price.html()) * parseInt(q);
    price.closest('tr').find('.sum_id').html(sum1);
});



$('table.table11 tr:last-child').find('.total_price').html(sum);
});

计算应在加载页面后执行