从jquery中的td获取总数

时间:2015-04-15 08:13:52

标签: javascript jquery

我试图计算班上的总金额。我使用下面的功能,但我得到错误的输出如下

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);

我怎样才能做到这一点?我做错了什么?

7 个答案:

答案 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);

http://jsfiddle.net/pbo5bker/3/

答案 3 :(得分:0)

问题是因为html()返回一个字符串,因此您需要将其转换为数字。

var PITotalAMount = 0;   
$(".HomePIAmtTot").each( function(){
    PITotalAMount += parseFloat($(this).html().replace(',', ''));
});

console.log(PITotalAMount);

答案 4 :(得分:0)

你需要:

  1. 删除逗号
  2. td中的文本(不是html!)解析为数字,然后添加。
  3. 我的建议:

    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);

https://jsfiddle.net/irfanfiddle/pbo5bker/1/