2017-05-04 7 views
0

私はそれを通貨スイッチャーでShopifyで働いています。問題は、私が働いているクライアントが、すべての通貨バーをデフォルト値(GBP)最も近い整数なので、$ 458.54は$ 459になります。jQuery - 複数の要素ですべての通貨価格を切り上げる

私は仕事がほとんどありましたが、.money要素が複数存在する場合を除いて、それらは壊れて一緒にマージされるようです。

JSコードは次のとおりです。

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

CodePen Example

+0

"価格使用'Math.round(6453.65)を丸くすることではなく、(自分のCodePen例から数)の代わりに6454を、それ以外の場合は6にカンマとラウンドを読むウィル、コンマを削除することを忘れないでください –

答えて

0

期待される結果を達成するために、正規表現は、その適切な配列でないとして、丸い価格のアレイに価格の配列を変更するオプションの下

を使用なぜNaNを投げているのですか

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

+0

それは本当に素晴らしいようです、ありがとうございます。 – ConduciveMammal

+0

喜んであなたのために働いた:) –

+0

実際には、これはJPY – ConduciveMammal

0

あなたは最も近い整数に切り上げるためにはJavaScriptの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] 
関連する問題