我有不同的價格英鎊的項目的頁面,每片價格爲一類價格的範圍內,我想要做的是改變所有的價格值到那個值除以1.2。所以沿jQuery的分裂 - 找到所有的價格檔次和劃分
$('.price').html()/"1.2";
現在我知道,這是行不通的格式例如10500£行,我還沒有能夠找到類似的在這裏,但我想採取10500£價值除以1.2,並將價值更新爲結果(£8,750)。到目前爲止,我所嘗試過的任何事情都讓我與NaN一起,我正在努力取得進展。
我有不同的價格英鎊的項目的頁面,每片價格爲一類價格的範圍內,我想要做的是改變所有的價格值到那個值除以1.2。所以沿jQuery的分裂 - 找到所有的價格檔次和劃分
$('.price').html()/"1.2";
現在我知道,這是行不通的格式例如10500£行,我還沒有能夠找到類似的在這裏,但我想採取10500£價值除以1.2,並將價值更新爲結果(£8,750)。到目前爲止,我所嘗試過的任何事情都讓我與NaN一起,我正在努力取得進展。
添加一個按鈕來進行測試:
<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'));
});
});
希望它能幫助。
@ user4349555更新了格式化 – RickL
差不多擊中了要害,錯過了逗號,但我敢肯定,我可以打擊的後處理數量。欣賞評論以幫助我瞭解代碼中發生的事情。 – user4349555
好的回答,是的!很好解釋和非常有用,做得好! – MadsBinger
這裏你去:-)
測試和工作。
$("span").each(function()
{
var strNewString = $(this).html().replace(',','');
$(this).html(strNewString/1.2);
});
當然。詢問是否有問題。 – MadsBinger
這將導致更改爲「0」的所有值 - 會是因爲£是值的範圍內,而不只是數字? – user4349555
啊,是的。 - 跨度內的英鎊?如果可能的話,你可以在範圍外設置英鎊,它會起作用。否則,您可以用「空」替換此字符,然後再次添加。 – MadsBinger
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('£',"g"), ''); //if exist simbil £
\t input_str=input_str.replace(new RegExp(' ',"g"), ''); //if wxist
\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)+' '+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+' '+out_str;}
\t out_str='£ '+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">£ 12 345 678 </div>
你努力使過程,因爲你沒有試圖尋找谷歌。然後我會查看$ .each()函數並從那裏開始。 – ProEvilz
不正確的,我看着谷歌,但感謝一個非常無益的答覆。 – user4349555
$。每個()是你需要的功能... – ProEvilz