Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript T正文中的多个表分别求和表_Javascript_Jquery_Html - Fatal编程技术网

Javascript T正文中的多个表分别求和表

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

我有多个表,其中我想对tbody下的所有td求和,并在thead中输出值。我也有多个表,因为我正在使用sortable jquery函数在表之间移动td行,如果拖放时总数更新就更好了

这些值是字符串格式的,但我可能会创建一个带有该值的数据对象,如果这样做更简单的话。我使用的是jquery,但普通javascript也可以

该表应如下所示(粗体数字为应计算的数字):


主要对象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

好的,到目前为止您尝试了什么?向我们展示并详细说明您遇到的任何问题,如果可以的话,我们会提供帮助。我更新了我的问题以澄清可能的重复,计算的不应该是水平方向的表行,而应该是垂直方向的表行。我错报了。嗯。。我没有否决投票。解决方案是完美的,正是我想要的!非常感谢。我希望这会有帮助