2017-10-13 56 views
0

我想创建一个基于一系列货币格式化数字的小计,但我正在努力将数字转换回整数,以便可以添加它们。这是我曾尝试:计算多种货币格式元素的总和

$(function() { 
 
    var totals = $('.price'); 
 

 
    var sum = 0; 
 
    for (var i = 0; i < totals.length; i++) { 
 
    //strip out dollar signs and commas 
 
    $(totals[i].text()).replace(/[^\d.]/g, ''); 
 

 
    //convert string to integer 
 
    var ct = parseFloat($(totals[i].text())); 
 
    sum += ct; 
 
    } 
 

 
    console.log(sum); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="price">$195,000.20</div> 
 
<div class="price">$21,404.00</div> 
 
<div class="price">$7,000.00</div> 
 
<div class="price">$450.00</div>

+0

请确保您的代码片段的作品。 –

+0

如果有效,我不会在这里;) – user13286

回答

2

replace()不会修改传递的字符串(它不能在这里无论如何,因为它是一个函数的结果)。它只是返回的修改值。

保存的replace()的结果,和根据是:

$(function() { 
 
    var totals = $('.price'); 
 

 
    var sum = 0; 
 
    for (var i = 0; i < totals.length; i++) { 
 
    //strip out dollar signs and commas 
 
    var v = $(totals[i]).text().replace(/[^\d.]/g, ''); 
 

 
    //convert string to integer 
 
    var ct = parseFloat(v); 
 
    sum += ct; 
 
    } 
 

 
    console.log(sum); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="price">$195,000.20</div> 
 
<div class="price">$21,404.00</div> 
 
<div class="price">$7,000.00</div> 
 
<div class="price">$450.00</div>

另外:注意错字 - 你想$(totals[i]).text(),不$(totals[i].text())

+0

非常感谢! – user13286