Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.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 如何计算动态表中每行的总计_Javascript_Jquery - Fatal编程技术网

Javascript 如何计算动态表中每行的总计

Javascript 如何计算动态表中每行的总计,javascript,jquery,Javascript,Jquery,我试图显示交易报表,在这一过程中,我添加每个表tr的贷方金额,并试图显示在余额列中,如果是借方,则从余额中扣除,并显示在余额列中,但当我试图实现这些时,其余额显示为无穷大。请看我的片段,告诉我我做错了什么 $(文档).ready(函数(){ $('#cbtn选择器tr')。每个(函数(){ var cr=Number(parseFloat($('.cr').text()); var dr=Number(parseFloat($('.br').text()); 如果(!isNaN(cr)&&cr

我试图显示交易报表,在这一过程中,我添加每个表tr的贷方金额,并试图显示在余额列中,如果是借方,则从余额中扣除,并显示在余额列中,但当我试图实现这些时,其余额显示为无穷大。请看我的片段,告诉我我做错了什么

$(文档).ready(函数(){
$('#cbtn选择器tr')。每个(函数(){
var cr=Number(parseFloat($('.cr').text());
var dr=Number(parseFloat($('.br').text());
如果(!isNaN(cr)&&cr.length!==0){
sum=数字(parseFloat($('.total').text());
sum=sum+cr;
}否则{
总和=数字($('.total').text());
sum=sum-dr;
}
$('.total').html(总和);
});
});

竞赛名称
类型
铬量
Dr金额
平衡
日期
新测试竞赛
铬
五百
0
0
2018年12月27日
新测试竞赛
博士
0
五百
0
1970年1月1日
新测试竞赛
铬
五百
0
0
2018年12月28日
总数:-
总数:-
总数:-

您应该在您正在迭代的当前
tr
上使用
find()
查找您拥有的
tr
中的特定元素(在本例中:
this
)。因为使用
$(…)
将匹配具有相同类的所有元素,这将使您的代码无法理解应该使用哪个值来计算

请检查下面的代码,看看它是否对您有帮助

$(文档).ready(函数(){
$('#cbtn选择器tr')。每个(函数(){
var cr=Number(parseFloat($(this).find('.cr').text());
var dr=Number(parseFloat($(this).find('.dr').text());
var总和=0;
如果(!isNaN(cr)&&cr>0){
sum=Number(parseFloat($(this).find('.total').text());
sum=sum+cr;
}否则{
sum=Number($(this).find('.total').text());
sum=sum-dr;
}
$(this.find('.total').html(sum);
});
});
.total{
颜色:绿色;
字体大小:粗体;
}

竞赛名称
类型
铬量
Dr金额
平衡
日期
新测试竞赛
铬
五百
0
0
2018年12月27日
新测试竞赛
博士
0
五百
0
1970年1月1日
新测试竞赛
铬
五百
0
0
2018年12月28日
总数:-
总数:-
总数:-

您应该在您正在迭代的当前
tr
上使用
find()
查找您拥有的
tr
中的特定元素(在本例中:
this
)。因为使用
$(…)
将匹配具有相同类的所有元素,这将使您的代码无法理解应该使用哪个值来计算

请检查下面的代码,看看它是否对您有帮助

$(文档).ready(函数(){
$('#cbtn选择器tr')。每个(函数(){
var cr=Number(parseFloat($(this).find('.cr').text());
var dr=Number(parseFloat($(this).find('.dr').text());
var总和=0;
如果(!isNaN(cr)&&cr>0){
sum=Number(parseFloat($(this).find('.total').text());
sum=sum+cr;
}否则{
sum=Number($(this).find('.total').text());
sum=sum-dr;
}
$(this.find('.total').html(sum);
});
});
.total{
颜色:绿色;
字体大小:粗体;
}

竞赛名称
类型
铬量
Dr金额
平衡
日期
新测试竞赛
铬
五百
0
0
2018年12月27日
新测试竞赛
博士
0
五百
0
1970年1月1日
新测试竞赛
铬
五百
0
0
2018年12月28日
总数:-
总数:-
总数:-
两件事:

  • 键入
    $('.br')
    ,应为
    $('.dr')
  • 您在选择元素时没有传递上下文,因此将选择第一个元素匹配类。在
    jQuery
    选择器中,第二个参数可以作为
    context
    传递,因此将从提供的上下文中选择元素
$(文档).ready(函数(){
$('#cbtn选择器tr')。每个(函数(){
var cr=Number(parseFloat($('.cr',this.text());
var dr=Number(parseFloat($('.dr',this.text());
如果(!isNaN(cr)&&cr.length!==0){
sum=Number(parseFloat($('.total',this.text());
sum=sum+cr;
}否则{
总和=数字($('.total',this.text());
sum=sum-dr;
}
$('.total',this.html(sum);
});
});

竞赛名称
类型
铬量
Dr金额
平衡
日期
新测试