我写了一个JavaScript版本。没有阿贾克斯,货币变化率是从谷歌借来的。
HTML代码
<select id="currencySelector">
<option value="usd">USD</option>
<option value="aud">AUD</option>
<option value="eur">EUR</option>
<option value="gbp">GBP</option>
</select>
<div class="currency" data-currencyName="usd">15<span>USD</span></div>
<div class="currency" data-currencyName="eur">15<span>EUR</span></div>
<div class="currency" data-currencyName="gbp">15<span>BGP</span></div>
<div class="currency" data-currencyName="aud">15<span>AUD</span></div>
JavaScript代码
var
selector = document.getElementById("currencySelector");
var
currencyElements = document.getElementsByClassName("currency");
var
usdChangeRate = {
AUD: 1.0490, // 1AUD = 1.0490 USD
EUR: 1.4407, // 1EUR = 1.4407 USD
GBP: 1.6424,
USD: 1.0
};
selector.onchange = function() {
var
toCurrency = selector.value.toUpperCase();
for (var i=0,l=currencyElements.length; i<l; ++i) {
var
el = currencyElements[i];
var
fromCurrency = el.getAttribute("data-currencyName").toUpperCase();
if (fromCurrency in usdChangeRate) {
var
// currency change to usd
fromCurrencyToUsdAmount = parseFloat(el.innerHTML) * usdChangeRate[fromCurrency];
var
// change to currency unit selected
toCurrenyAmount = fromCurrencyToUsdAmount/usdChangeRate[toCurrency];
el.innerHTML = toCurrenyAmount + "<span>" + toCurrency.toUpperCase() + "</span>";
el.setAttribute("data-currencyName",toCurrency);
}
}
};
运行代码
您可以在http://jsbin.com/ewuyoq/5运行上面的代码或建立自己的版本http://jsbin.com/ewuyoq/5/edit
您应该开始学习编程并提出编程问题,而不是脚本...... – Catalin
在飞行中进行这些类型的转换充满危险,除非您实际上以所有列出的货币对其进行结算(例如,如果您以美元结算,但您已经以加元显示价格并且汇率发生变化,它们将以与所报价格不同的价格收费)。更好地坚持使用一种货币,并将转换交给客户,以找到自己的资源进行计算。或者,如果不这样做,请聘请一位编码员为您制作 - 这里没有免费午餐。 –
这听起来有点像'给我这个代码请,kthxbye'的问题。我们不是在这里给你全面的工作解决方案。如果您遇到困难,我们会帮助您。此外,您的问题可能不会仅限于前端问题。您可能需要与后端进行交互以获取其他货币的价格,除非后端已经在某些javascript数据对象中提供了它们。 –