Javascript 在列上添加对整个列的值求和的底行

Javascript 在列上添加对整个列的值求和的底行,javascript,jquery,html,html-table,Javascript,Jquery,Html,Html Table,我有一个包含五列的表,其结构如下: 时间戳 现金及;拿 店名 数量 评论 10/01/2018 新德里现金及;拿 J的比萨饼站 72.75£ 支付2018-01-11 16:53全额:75折3%折扣总计:2.25 13/01/2018 新德里现金及;拿 墨西哥之家酒店 93.42£ 支付2018-01-18 10:08全额:3%折扣的96.31折扣总计:2.8893 14/01/2018 新德里现金及;拿 墨西哥之家酒店 67.08£ 已支付2018-01-18 10:05全额:69.15折扣

我有一个包含五列的表,其结构如下:

时间戳 现金及;拿 店名 数量 评论 10/01/2018 新德里现金及;拿 J的比萨饼站 72.75£ 支付2018-01-11 16:53全额:75折3%折扣总计:2.25 13/01/2018 新德里现金及;拿 墨西哥之家酒店 93.42£ 支付2018-01-18 10:08全额:3%折扣的96.31折扣总计:2.8893 14/01/2018 新德里现金及;拿 墨西哥之家酒店 67.08£ 已支付2018-01-18 10:05全额:69.15折扣,折扣总额为:2.0745 18/01/2018 新德里现金及;拿 墨西哥之家酒店 94.00£ 已支付2018-01-25 10:34全额:3%折扣的96.91折扣总计:2.9073 19/01/2018 新德里现金及;拿 墨西哥之家酒店 48.50£ 支付2018-01-25 10:34全额:3%折扣的50折扣总计:1.5 20/01/2018 新德里现金及;拿 墨西哥之家酒店 34.85£ 支付2018-01-25 10:33全额:3%折扣的35.93折扣总计:1.0779 25/01/2018 新德里现金及;拿 伊斯坦快车 212.97£ 已支付2018-02-01 10:51全额:3%折扣的219.56折扣总计:6.5868 03/02/2018 新德里现金及;拿 J的比萨饼站 14.55£ 全额:3%折扣中的15%折扣总额:0.45
尝试将信息保存在JSON文件中,然后使用Javascript的createElement和appendChild方法生成表。有了JSON文件中的所有信息,您可以轻松地对金额进行求和,并使用:last child选择器在每个表行末尾添加另一个具有特殊格式的节点。

您可以向表中添加一个总计行


如注释中所述,您只需在表中添加一个几乎为空的:

var total = 0;
$('table tr:not(:first) td:nth-of-type(4)').each(function(){
  total += +$(this).text().slice(0,-1);
});

$('table').append('<tr><td class="no-border"></td><td class="no-border"></td><td class="no-border"></td><td>'+total+'£</td><td class="no-border"></td></tr>');
时间戳 现金及;拿 店名 数量 评论 10/01/2018 新德里现金及;拿 J的比萨饼站 72.75£ 支付2018-01-11 16:53全额:75折3%折扣总计:2.25 13/01/2018 新德里现金及;拿 墨西哥之家酒店 93.42£ 支付2018-01-18 10:08全额:3%折扣的96.31折扣总计:2.8893 14/01/2018 新德里现金及;拿 墨西哥之家酒店 67.08£ 已支付2018-01-18 10:05全额:69.15折扣,折扣总额为:2.0745 18/01/2018 新德里现金及;拿 墨西哥之家酒店 94.00£ 已支付2018-01-25 10:34全额:3%折扣的96.91折扣总计:2.9073 19/01/2018 新德里现金及;拿 墨西哥之家酒店 48.50£ 支付2018-01-25 10:34全额:3%折扣的50折扣总计:1.5 20/01/2018 新德里现金及;拿 墨西哥之家酒店 34.85£ 支付2018-01-25 10:33全额:3%折扣的35.93折扣总计:1.0779 25/01/2018 新德里现金及;拿 伊斯坦快车 212.97£ 已支付2018-02-01 10:51全额:3%折扣的219.56折扣总计:6.5868 03/02/2018 新德里现金及;拿 J的比萨饼站 14.55£ 全额:3%折扣中的15%折扣总额:0.45 请尝试以下操作:

风险价值金额=0; $'tr'.not':first'.not':last'.eachfunctioni,item{ amount+=parseFloat$item.children.eq3.text; }; $'.total'.textamount+'; .有边框的桌子{ 边界:没有!重要; } tr:last child>td{ 边界:无; 边框顶部:1px实心DDDD; } .总数{ 边框:1px纯黑!重要; } 时间戳 现金及;拿 店名 数量 评论 10/01/2018 新德里现金及;拿 J的比萨饼站 72.75£ 支付2018-01-11 16:53全额:75折3%折扣总计:2.25 13/01/2018 新德里现金及;拿 墨西哥之家酒店 93.42£ 支付2018-01-18 10:08全额:3%折扣的96.31折扣总计:2.8893 14/01/2018 新德里现金及;拿 墨西哥之家酒店 67.08£ 已支付2018-01-18 10:05全额:69.15折扣,折扣总额为:2.0745 18/0 1/2018 新德里现金及;拿 墨西哥之家酒店 94.00£ 已支付2018-01-25 10:34全额:3%折扣的96.91折扣总计:2.9073 19/01/2018 新德里现金及;拿 墨西哥之家酒店 48.50£ 支付2018-01-25 10:34全额:3%折扣的50折扣总计:1.5 20/01/2018 新德里现金及;拿 墨西哥之家酒店 34.85£ 支付2018-01-25 10:33全额:3%折扣的35.93折扣总计:1.0779 25/01/2018 新德里现金及;拿 伊斯坦快车 212.97£ 已支付2018-02-01 10:51全额:3%折扣的219.56折扣总计:6.5868 03/02/2018 新德里现金及;拿 J的比萨饼站 14.55£ 全额:3%折扣中的15%折扣总额:0.45
是的,有一个名为colspan的DOM属性,用于控制一个跨接的列数

您可以添加一行和一些CSS来完成以下操作:

<style>
    tr:last-child>td[colspan] {
        border: none;
    }
</style>
<table>
    ...
    <tr><td colspan="3"></td><td>638.12€</td><td colspan="1"></td>
</table>

您可以附加页脚,只需使用css设置边框样式

var tds=$”。带边框的表tr:not:first child td:nth-child4' 风险价值金额=0; tds.eachfunctionk,td{ amount+=parseFloat$td.text.substring-1,$td.text.length-1; } $'。表格有边框。追加+金额+' 时间戳 现金及;拿 店名 数量 评论 10/01/2018 新德里现金及;拿 J的比萨饼站 72.75£ 支付2018-01-11 16:53全额:75折3%折扣总计:2.25 13/01/2018 新德里现金及;拿 墨西哥之家酒店 93.42£ 支付2018-01-18 10:08全额:3%折扣的96.31折扣总计:2.8893 14/01/2018 新德里现金及;拿 墨西哥之家酒店 67.08£ 已支付2018-01-18 10:05全额:69.15折扣,折扣总额为:2.0745 18/01/2018 新德里现金及;拿 墨西哥之家酒店 94.00£ 已支付2018-01-25 10:34全额:3%折扣的96.91折扣总计:2.9073 19/01/2018 新德里现金及;拿 墨西哥之家酒店 48.50£ 支付2018-01-25 10:34全额:3%折扣的50折扣总计:1.5 20/01/2018 新德里现金及;拿 墨西哥之家酒店 34.85£ 支付2018-01-25 10:33全额:3%折扣的35.93折扣总计:1.0779 25/01/2018 新德里现金及;拿 伊斯坦快车 212.97£ 已支付2018-02-01 10:51全额:3%折扣的219.56折扣总计:6.5868 03/02/2018 新德里现金及;拿 J的比萨饼站 14.55£ 全额:3%折扣中的15%折扣总额:0.45 使用此选择器“表tbody tr:gt0 td:nth-child4”

看看这个代码片段 var currencycsymbol=“£” 风险价值总额=0.0; $'表tbody tr:gt0 td:nth-child4'。每个函数{ 总计+=parseFloat$this.html.replacecurrencySymbol; }; 总计+=货币符号; var$newTR=$+总计+; $'table tbody'。追加$newTR; 时间戳 现金及;拿 店名 数量 评论 10/01/2018 新德里现金及;拿 J的比萨饼站 72.75£ 支付2018-01-11 16:53全额:75折3%折扣总计:2.25 13/01/2018 新德里现金及;拿 墨西哥之家酒店 93.42£ 支付2018-01-18 10:08全额:3%折扣的96.31折扣总计:2.8893 14/01/2018 新德里现金及;拿 墨西哥之家酒店 67.08£ 已支付2018-01-18 10:05全额:69.15折扣,折扣总额为:2.0745 18/01/2018 新德里现金及;拿 墨西哥之家酒店 94.00£ 已支付2018-01-25 10:34全额:3%折扣的96.91折扣总计:2.9073 19/01/2018 新德里现金及;拿 墨西哥之家酒店 48.50£ 支付2018-01-25 10:34全额:3%折扣的50折扣总计:1.5 20/01/2018 新德里现金及;拿 墨西哥之家酒店 34.85£ 支付2018-01-25 10:33全额:3%折扣的35.93折扣总计:1.0779 25/01/2018 新德里现金及;拿 伊斯坦快车 212.97£ 已支付2018-02-01 10:51全额:3%折扣的219.56折扣总计:6.5868 03/02/2018 新德里现金及;拿 J的比萨饼站 14.55£ 全额:3%折扣中的15%折扣总额:0.45 除了要显示总数的那一个之外,您必须附加一个满的空。一些快速的CSS将消除你的空白页面上的边框。
<style>
    tr:last-child>td[colspan] {
        border: none;
    }
</style>
<table>
    ...
    <tr><td colspan="3"></td><td>638.12€</td><td colspan="1"></td>
</table>