-2
是否有可能使用Javascript或Jquery重新計算貨幣。Javascript貨幣轉換
例如:
<div id="price">$99.00</div>
將改爲
<div class="gbp" id="price">£63.85</div>
如果一個類 「英鎊」 的被應用於div標籤?
是否有可能使用Javascript或Jquery重新計算貨幣。Javascript貨幣轉換
例如:
<div id="price">$99.00</div>
將改爲
<div class="gbp" id="price">£63.85</div>
如果一個類 「英鎊」 的被應用於div標籤?
你可以做,使用MutationObservers:
(function() {
var observer = new MutationObserver(function(mutations) {
// for the class attribute, only the last mutation is important
var mutation = mutations[mutations.length - 1],
el = mutation.target;
calculatePrice(el);
});
var config = {
attributes: true,
attributeFilter: ['class']
};
document.addEventListener('DOMContentLoaded', function() {
var price = document.querySelector('#price');
observer.observe(price, config);
[].forEach.call(document.querySelectorAll('button'), function(btn, i) {
btn.addEventListener('click', function(e) {
price.className = this.id;
});
});
});
function calculatePrice(el) {
var currencies = {
usd: 1,
gbp: 0.65,
brl: 3.90
};
var types = {
usd: '$',
gbp: '£',
brl: 'R$'
};
var currentType = Object.keys(types).filter(function(t) {
return el.textContent.slice(0, types[t].length) === types[t];
});
currentType = currentType[0];
var newType = el.className;
var vl = Number(el.getAttribute('data-price')) * currencies[newType];
el.textContent = types[newType] + vl.toFixed(2);
}
})();
<div id='price' data-price='99' class='usd'>$99.00</div>
<button id='usd'>Change the class to 'usd'</button>
<button id='gbp'>Change the class to 'gbp'</button>
<button id='brl'>Change the class to 'brl'</button>
正如你可以看到,該按鈕的事件處理程序只改變的input
的className
:
btn.addEventListener('click', function(e) {
price.className = this.id;
});
而observer
得到這個改變,併爲你做轉換。
應用類別時,您必須手動進行轉換 – Tushar
確實有可能。你試過了嗎?什麼不起作用?看看[如何問一個好問題](http://stackoverflow.com/help/how-to-ask) –
這是非常簡單的獲取和更改文本。問題是真的缺乏細節和研究努力的跡象 – charlietfl