2017-10-18 1 views
-1

私はGBPで様々な価格のアイテムのページを持っています、各価格はクラスの価格帯で、私がしたいと思っているのはすべての価格の値を変更することですその値を1.2で割ったものです。そうjQuery部門 - すべての価格クラスを見つけて分ける

$('.price').html()/"1.2"; 

の線に沿って、今私は、フォーマットは、たとえば、私はここに似て見つけることができたhaventはしかし、私はその£10,500を取るしたい£10,500であるとして、これは動作しませんことを承知しています値を1.2で除算し、結果に値の更新を行います(8,750ポンド)。私がこれまでに試したことは、NaNで私を残し、私は進歩を遂げるのに苦労しています。

+0

Googleで見て試したことがないので、あなたは、プロセスを作るのに苦労しています。私は$ .each()関数を見てそこから行くでしょう。 – ProEvilz

+0

間違っていますが、私はGoogleで見ましたが、非常に役に立たない返答に感謝します。 – user4349555

+0

$ .each()は必要な機能です... – ProEvilz

答えて

2

はテスト用のボタンを追加します。

<button id="test-button">Test Currencies</button> 

を次のjQueryを追加します。

$('#test-button').on('click', function() { 
    // Get currency elements 
    var currencies = $('.price'); 
    var newSymbol = '£'; 
    var eRate = 0.8333; 
    $.each(currencies, function (index, value) { 
     // Change value to a number using regex 
     var number = Number($(this).html().replace(/[^0-9\.]+/g, "")); 
     // Assign new value and add number formatting 
     $(this).html(newSymbol + (number * eRate).toFixed(2).toLocaleString('en')); 
    }); 

}); 

はそれがお役に立てば幸いです。

+0

@ user4349555後処理用の数値書式 – RickL

+0

のために更新されました。頭の爪にかなりぶつかり、カンマが足りなくなりましたが、私はそれを解くことができます。コード内で何が起こっているのかを理解するのに役立つコメントを感謝します。 – user4349555

+1

ニースの答えは、はい!よく説明され、非常に有用な、うまくいった! – MadsBinger

0

ここに行く:-)

テスト済みです。

$("span").each(function() 
{ 
var strNewString = $(this).html().replace(',',''); 
$(this).html(strNewString/1.2); 
}); 
+0

もちろん、「、」でフォーマットされた数値を後で返すことができます。質問があれば質問してください。 – MadsBinger

+0

これは、すべての値が「0」に変わる結果になります。なぜなら、£は数値ではなく値の範囲内にあるからでしょうか? – user4349555

+0

ああ、そうです。 - ポンドはスパンの中に入っていますか?可能であれば、範囲外に£を設定することができます。そうでない場合は、この文字を「空」に置き換えて後でもう一度追加することができます。 – MadsBinger

0

function format_price(_input_str){ 
 
\t var input_str=_input_str+''; //if input integer convert to string 
 
\t input_str=input_str.replace(new RegExp(' ',"g"), ''); //if exist spaces 
 
\t input_str=input_str.replace(new RegExp('&#163;',"g"), ''); //if exist simbil £ 
 
\t input_str=input_str.replace(new RegExp('&nbsp;',"g"), ''); //if wxist &nbsp; 
 
\t var input_int = parseInt(input_str)||0; 
 
\t if(input_int==0){ return _input_str;} //return original string 
 
\t input_str=input_int+''; 
 
\t var out_str=''; 
 
\t while(input_str.length > 3){ 
 
\t \t out_str=input_str.substr(-3)+'&nbsp;'+out_str; 
 
\t \t input_str=input_str.substr(0,input_str.length-3); 
 
\t } 
 
\t if(input_str.length>0){out_str=input_str+'&nbsp;'+out_str;} 
 
\t out_str='&#163;&nbsp;'+out_str; 
 
\t return out_str; 
 
} 
 

 

 

 

 
    $('.price').each(function(){ 
 
     var this_price=$(this).html(); 
 
    \t $(this).html(format_price(this_price)); 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 

 
    <div class="price">12345</div> 
 
    <div class="price">76 09</div> 
 
    <div class="price">4576 09</div> 
 
    <div class="price">45</div> 
 
    <div class="price">&#163;&nbsp;12&nbsp;345&nbsp;678&nbsp;</div> 
 
    
 

関連する問題