我试图计算班上的总金额。我使用下面的功能,但我得到错误的输出如下
7,240.00,640.00,8,440.00,10,940.00
但我的预期输出是所有
的总和7,240.00+640.00+8,440.00+10,940.00 = Total
Jquery Fiddle
var PITotalAMount = 0;
$(".HomePIAmtTot").each( function(){
PITotalAMount += $(this).html();
});
console.log(PITotalAMount);
我怎样才能做到这一点?我做错了什么?
答案 0 :(得分:4)
您需要从提取的html中删除,
,使用.parseFloat()
转换为浮动数字,然后执行添加:
$(".HomePIAmtTot").each( function(){
PITotalAMount += parseFloat($(this).html().replace(",",""));
});
console.log(PITotalAMount.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","));
<强> Working Demo 强>
答案 1 :(得分:1)
更改此代码
$(this).html();
向
parseFloat($(this).html().replace(",",""));
答案 2 :(得分:1)
另一个解决方案:(注意+符号,当在字符串之前添加时,它变成一个数字)
var PITotalAMount = 0;
$(".HomePIAmtTot").each( function(){
PITotalAMount += +$(this).html().replace(",","");
});
console.log(PITotalAMount);
答案 3 :(得分:0)
问题是因为html()
返回一个字符串,因此您需要将其转换为数字。
var PITotalAMount = 0;
$(".HomePIAmtTot").each( function(){
PITotalAMount += parseFloat($(this).html().replace(',', ''));
});
console.log(PITotalAMount);
答案 4 :(得分:0)
你需要:
td
中的文本(不是html!)解析为数字,然后添加。我的建议:
var PITotalAMount = 0;
$(".HomePIAmtTot").each( function(){
PITotalAMount += parseInt($(this).text().replace(',',''));
});
希望有所帮助。
答案 5 :(得分:0)
你应该从html元素获取时解析该值,并且需要用null替换“,”来设置正确的价格,所以试试这个......
var PITotalAMount = 0;
$(".HomePIAmtTot").each( function(){
PITotalAMount += parseFloat($(this).html().replace(',', ''));
//alert(PITotalAMount);
});
console.log(PITotalAMount);
HERE 是小提琴
答案 6 :(得分:0)
就是这样。
var PITotalAMount = 0;
$(".HomePIAmtTot").each( function(){
PITotalAMount += parseInt($(this).html().replace(/,/g , ""));
});
console.log('Total' + PITotalAMount);