Javascript 我怎样才能做一个;sum";前一行的组的列

Javascript 我怎样才能做一个;sum";前一行的组的列,javascript,html,css,Javascript,Html,Css,如果我有一个表,并且每行中的每一行都有一个金额,我将如何显示行组的总和? 示例: A 100 A 100 A 100 B 120 我试图创建一个第三列,在100/100个/100个单元的中间有300个(100+100+100),以便清楚地表明第三列中每个单元的数目是前一个的总和。 我尝试使用rowspan,但不起作用。我怎样才能做到这一点?例如: <html> <body> <table> <tr> <

如果我有一个表,并且每行中的每一行都有一个金额,我将如何显示行组的总和?
示例:
A 100
A 100
A 100
B 120

我试图创建一个第三列,在100/100个/100个单元的中间有300个(100+100+100),以便清楚地表明第三列中每个单元的数目是前一个的总和。 我尝试使用

rowspan
,但不起作用。我怎样才能做到这一点?例如:

<html>  
<body>  
<table>  
    <tr>  
        <td>A</td>  
        <td>B</td>  
        <td>100</td>  
    </tr>  
    <tr>  
        <td>A</td>  
        <td>B</td>  
        <td>100</td>  
        <td rowspan="2">$300</td>  
    </tr>  
    <tr>  
        <td>A</td>  
        <td>B</td>  
        <td>100</td>  
    </tr>  
    <tr>  
        <td>C</td>  
        <td>B</td>  
        <td>100</td>  
    </tr>   
</table>  
</body>  
</html>  

A.
B
100
A.
B
100
$300  
A.
B
100
C
B
100

我不确定,但这可能是对齐问题。在您的表上设置
border=“1”
,您将看到原因

尝试:

300美元

不确定您的问题是什么,但这里有一个JS OOP解决方案,用于获取单元格的总和(假设您的表已排序):


演示:

你确定这是计算总和的正确方法吗?以前在服务器端不可能这样做,只使用JS显示结果吗?@sdespont:我不想实际计算总和。本来我想这样做,但太复杂了。我只想显示我可以预先计算的总和。所以这只是一个显示问题。这似乎是一个合理的表示,除非有显示所需的sumsIt是一个更好/更容易的选项。设置边框对此很有帮助。但它在这个特定的集合中起作用。如果我有奇偶行组要求和,我认为这不起作用。为什么表排序与否很重要?@Jim我的算法就是这样工作的:如果它在第一个单元格中遇到新名称,它创建了一个新的组。请参见此未排序表的示例:
<td rowspan="2" valign="bottom">$300</td> 
(function () {
  // Helper
  function $(selector) {
    return Array.prototype.slice.call(document.querySelectorAll(selector));
  }

  function Group(name, row) {
    this.name = name;
    this.summ = 0;
    this.length = 0;
    this.cell = document.createElement('td');

    row.appendChild(this.cell);
  }

  Group.prototype._update = function () {
    this.cell.textContent = this.summ;
    this.cell.setAttribute('rowspan', this.length);
  };

  Group.prototype.add = function (value) {
    this.summ += value;
    this.length++;

    this._update();
  };

  var group = null;

  $('#summup tr').forEach(function (row) {
    var name = row.children[0].textContent;
    var value = parseFloat(row.children[1].textContent, 10);

    if (!group || group.name !== name) {
      group = new Group(name, row);
    }

    group.add(value);
  });
})();