2017-10-13 67 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