Javascript jQuery sum单击按钮即可在表中添加所有TD值
我有一个表单,有几个字段,可以做一个小的计算。填充所有下拉列表并单击添加按钮后,它将显示特定任务的时间。同样,如果您进行几次计算,数据将显示在表中。时间列中的所有值将相加并显示在另一行中。我已经实现了这一点。但每次它都会不断增加现有的价值 请参阅图片:Javascript jQuery sum单击按钮即可在表中添加所有TD值,javascript,jquery,html,json,Javascript,Jquery,Html,Json,我有一个表单,有几个字段,可以做一个小的计算。填充所有下拉列表并单击添加按钮后,它将显示特定任务的时间。同样,如果您进行几次计算,数据将显示在表中。时间列中的所有值将相加并显示在另一行中。我已经实现了这一点。但每次它都会不断增加现有的价值 请参阅图片: $(文档).ready(函数(){ $(“#计算”)。单击(函数(){ 设tr=$(“”).appendTo(“#数据体”); $(“#计算输入,#计算选择”)。每个(函数(索引){ var输入=$(此); $(tr).append(“”+$
$(文档).ready(函数(){
$(“#计算”)。单击(函数(){
设tr=$(“”).appendTo(“#数据体”);
$(“#计算输入,#计算选择”)。每个(函数(索引){
var输入=$(此);
$(tr).append(“”+$(输入).val()+“”);
});
const componentFactor=$(tr).children(“.row component”).text();
常量单位=$(tr).children(“.row单位”).text();
常量合计=组成因子*单位;
$(tr).追加(“”+总计+“”);
$(“#计算”)[0]。重置();
$(“#总计”).html(第(5)列);
函数列(索引){
var合计=0;
$(“td:n个子项(“+index+”))。每个(函数(){
total+=parseInt($(this).text(),10)| | 0;
});
返回总数;
}
});
});
问题在于,在求和函数中包含了总行。.each
正确地命中了右索引处的每个TD元素,但它也包括第一行
如果像这样修改求和函数,它会工作
function sumColumn(index) {
var total = 0;
$("td:nth-child(" + index + ")").each(function() {
if(this.id !== 'total') {
total += parseInt($(this).text(), 10) || 0;
}
});
return total;
}
同样的结论是,您正在代码中添加total;您还可以使用以下选项:
function sumColumn(index) {
var total = 0;
$("tr> td:nth-child(" + index + ")").not(':first').each(function(i,item) {
total += parseInt($(this).text(), 10) || 0;
});
return total;
}
您可以看到它在这里工作:
function sumColumn(index) {
var total = 0;
$("tr> td:nth-child(" + index + ")").not(':first').each(function(i,item) {
total += parseInt($(this).text(), 10) || 0;
});
return total;
}