jQuery - 使用多个元素汇总所有货币价格

时间:2017-05-04 15:20:57

标签: javascript jquery

我在Shopify中使用它的货币切换器,问题是,我正在使用的客户希望每个货币栏都默认(GBP)来围绕它的价格最高的整数,所以458.54美元变成459美元。

我几乎得到了它的工作,除非存在多个var all = $(".money") .map(function() { return this.innerHTML; }) .get(); var all = [all, ","]; var arrayLength = all.length; for (var i = 0; i < arrayLength; i++) { //Do something } console.log("array:", all); var regex = all.toString().replace(/[^0-9.]/g, ""); var regex = [regex, ","]; var regexarrayLength = regex.length; for (var i = 0; i < regexarrayLength; i++) { //Do something } console.log("arrayregex:", regex); console.log("regex:", regex); var rounded_currency = Math.round(regex); console.log("rounded_currency:", rounded_currency); $("#update").click(function() { alert(rounded_currency); }); $(document).ready(function() { $(".priceUpdate").text(regex); $(".priceRound").text(rounded_currency); }); 元素,它似乎打破并将它们合并在一起。

JS代码是:

{{1}}

this

2 个答案:

答案 0 :(得分:0)

要达到预期效果,请使用以下选项

将价格数组更改为舍入价格数组,因为正则表达式不是正确的数组,这就是为什么它会抛出NaN

更新了具有JPY值的codepen以进行测试

 console.log("array:", all);

    var prices = all[0].map(function(num){
      return var prices = all[0].map(function(num){
  return Math.round(num.replace(/,/g, '').substr(1));
})
console.log(prices)
    })
    console.log(prices);//rounded prices [6454,6454,454,644,6564454]

Codepen - https://codepen.io/nagasai/pen/VbMZBz?editors=1111

答案 1 :(得分:0)

您可以使用javascript&#39; Math.ceil()函数来舍入到最接近的整数。

例如,使用.money类循环遍历所有选择器的数组,并首先剥离美元符号。然后调用Math.ceil()。

var all = $(".money").map(function() {
    return this.innerHTML;
}).get();
//["$6453.65", "$6453.65", "$453.65", "$643.65", "$6564453.65"]

var rounded = all.map(function(x) {
  var numbers = x.replace(/[^0-9]/, '');
  return Math.ceil(numbers);
});
//[6454, 6454, 454, 644, 6564454]