2017-10-18 66 views
-1

我有不同的價格英鎊的項目的頁面,每片價格爲一類價格的範圍內,我想要做的是改變所有的價格值到那個值除以1.2。所以沿jQuery的分裂 - 找到所有的價格檔次和劃分

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

現在我知道,這是行不通的格式例如10500£行,我還沒有能夠找到類似的在這裏,但我想採取10500£價值除以1.2,並將價值更新爲結果(£8,750)。到目前爲止,我所嘗試過的任何事情都讓我與NaN一起,我正在努力取得進展。

+0

你努力使過程,因爲你沒有試圖尋找谷歌。然後我會查看$ .each()函數並從那裏開始。 – ProEvilz

+0

不正確的,我看着谷歌,但感謝一個非常無益的答覆。 – user4349555

+0

$。每個()是你需要的功能... – 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>