Javascript T正文中的多个表分别求和表
我有多个表,其中我想对tbody下的所有td求和,并在thead中输出值。我也有多个表,因为我正在使用sortable jquery函数在表之间移动td行,如果拖放时总数更新就更好了 这些值是字符串格式的,但我可能会创建一个带有该值的数据对象,如果这样做更简单的话。我使用的是jquery,但普通javascript也可以 该表应如下所示(粗体数字为应计算的数字):Javascript T正文中的多个表分别求和表,javascript,jquery,html,Javascript,Jquery,Html,我有多个表,其中我想对tbody下的所有td求和,并在thead中输出值。我也有多个表,因为我正在使用sortable jquery函数在表之间移动td行,如果拖放时总数更新就更好了 这些值是字符串格式的,但我可能会创建一个带有该值的数据对象,如果这样做更简单的话。我使用的是jquery,但普通javascript也可以 该表应如下所示(粗体数字为应计算的数字): 主要对象A 120000 45000 对象A 100 000 20 000 对象B 10 000 25 000 主要对象B 22
主要对象A
120000
45000
对象A
100 000
20 000
对象B
10 000
25 000
主要对象B
220000
35000
对象A
200 000
20 000
对象B
10 000
25 000
我不完全理解您需要什么,但它应该是这样的。
如果你点燃我,我可以帮你得到你想要的
$(“表”)。每个函数(索引,el){
var总和=0;
$(el).find(“tbody>tr>td:nth child(2)”。每个(函数(i,e){
sum+=parseInt($(e).html().replace(“,”);
});
$(el).find(“thead>tr>td”).eq(1).html(sum);
var-sum1=0;
$(el).find(“tbody>tr>td:nth child(3)”。每个(函数(i,e){
sum1+=parseInt($(e).html().replace(“,”);
});
$(el).find(“thead>tr>td”).eq(2).html(sum1);
})
主要对象A
[正文字段A下方的总和]
[以下T正文字段B的总和]
对象A
100 000
20 000
对象B
10 000
25 000
主要对象B
[正文字段A下方的总和]
[以下T正文字段B的总和]
对象A
100 000
20 000
对象B
10 000
25 000
您可以使用类似的东西。基本上,代码会找到要求和的元素,然后将其附加到对象的总面积。代码将数字对象行相加,然后将A
的总数放在左上角,将B
的总数放在右上角:
let tables=$(“table”).toArray();//拿到所有的桌子
设a=假;
for(table of tables){//循环遍历每个表
让tableRow=$(table.find('tbody').find('tr').toArray();//获取每个对象的tr数据
设total=0;
for(tableRow的tableData){
对于(数据为$(tableData).children().toArray()){
让number=$(data.html().replace('');
如果(!isNaN(number)){//如果该字符串被视为一个数字,则将其添加
总数+=parseInt(数字);
}
}
让totalElements=$(table.find('thead').find('td').toArray();
$(totalElements[a+1]).html(总计);
a=!a;
}
}
主要对象A
[正文字段A下方的总和]
[以下T正文字段B的总和]
对象A
100 000
20 000
对象B
10 000
25 000
主要对象B
[正文字段A下方的总和]
[以下T正文字段B的总和]
对象A
100 000
20 000
对象B
10 000
25 000
好的,到目前为止您尝试了什么?向我们展示并详细说明您遇到的任何问题,如果可以的话,我们会提供帮助。我更新了我的问题以澄清可能的重复,计算的不应该是水平方向的表行,而应该是垂直方向的表行。我错报了。嗯。。我没有否决投票。解决方案是完美的,正是我想要的!非常感谢。我希望这会有帮助