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);
});
})();