计算多种货币格式元素的总和

Calculate the sum of multiple currency formatted elements

我正在尝试根据一系列货币格式的数字创建小计,但我正在努力将数字转换回整数以便将它们相加。这是我尝试过的:

$(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">5,000.20</div>
<div class="price">,404.00</div>
<div class="price">,000.00</div>
<div class="price">0.00</div>

replace() 不修改传入的字符串(无论如何它不能在这里,因为它是函数的结果)。它只是returns修改后的值。

保存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">5,000.20</div>
<div class="price">,404.00</div>
<div class="price">,000.00</div>
<div class="price">0.00</div>

另请注意打字错误——您想要 $(totals[i]).text(),而不是 $(totals[i].text())