如何在多个表中获取总和

时间:2019-04-05 02:11:19

标签: javascript jquery

我有多个表,我想获取每个表的总数。请观看小提琴中的演示。

var total = 0;
$("table").each(function(i){
    total += +$('.a', this).text() || 0;
    console.log( 'total: '+total );
    $("#subtotal", this).text( total );
    //console.log( '-'+$('.a', this).text() );
});

https://jsfiddle.net/juandela/6r1g30dx/2/

1 个答案:

答案 0 :(得分:1)

您需要在表循环内移动var total=0,以便为每个表重置

然后,您需要遍历每个单元格以获得单个单元格的文本。

获取所有$('.a', this).text()的问题是它将所有元素文本连接到一个字符串中,这就是为什么在第一张表中看到像"1357"这样的数字总计的原因

最后,您无法在页面中重复ID,因此请将小计更改为类

$("table").each(function(i) {
  var total = 0;
  $('.a', this).each(function() {
    total += +$(this).text() || 0;
  });
  $(".subtotal", this).text(total);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
  <tr>
    <td class="a">1</td>
    <td>2</td>
  </tr>
  <tr>
    <td class="a">3</td>
    <td>4</td>
  </tr>
  <tr>
    <td class="a">5</td>
    <td>6</td>
  </tr>
  <tr>
    <td class="a">7</td>
    <td>8</td>
  </tr>
  <tr>
    <td class="subtotal"></td>
  </tr>
</table>
<hr>
<table>
  <tr>
    <td class="a">1</td>
    <td>2</td>
  </tr>
  <tr>
    <td class="a">3</td>
    <td>4</td>
  </tr>
  <tr>
    <td class="a">5</td>
    <td>6</td>
  </tr>
  <tr>
    <td class="a">7</td>
    <td>8</td>
  </tr>
  <tr>
    <td class="a">9</td>
    <td>10</td>
  </tr>
  <tr>
    <td class="a">11</td>
    <td>12</td>
  </tr>
  <tr>
    <td class="subtotal"></td>
  </tr>
</table>