这将是一个漫长的过程。我有一个我一直在做的任务,我一直有问题。我有大量的代码,我不太确定如何使它正常运行,如果我正在尝试做什么。我将发布这些部分,也许你们中的一些人可以看到我只是试图将它保存在JavaScript中而不是jQuery或pHp或其他任何东西,继续将其视为响应。
第一部分:html代码
<!DOCTYPE html>
<html lang="en">
<head>
<title>Currency Converter 2.0</title>
<meta charset="utf-8">
<link rel="stylesheet" href="currency.css">
<script src="currency1.js">
</script>
</head>
<body>
<h1>Currency Converter</h1>
<p>Enter Dollar Amount</p>
<form>
<input type="text" id="currencyTextInput" size="40" placeholder="For example 12.12">
<input type="submit" id="addButton" value="Enter">
</form>
<ul>
<li id="money0"></li>//these names are not final,
<li id="money1"></li>//I know i will need to change them
<li id="money2"></li>
<li id="money3"></li>
<li id="money4"></li>
</ul>
</body>
</html>
第二部分:.js文件
window.onload = function () {
var button = document.getElementById("addButton");
button.onclick = handleButtonClick;
}
var exchangeRate = [];
//this will be later one in the code, but aiming to have data pushed in here from objects
function handleButtonClick(e) {
var textInput = document.getElementById("currencyTextInput");
var moneyString = textInput.value;
var parsedMoney = parseFloat(moneyString);
var valid = !isNaN(parsedMoney);
if (!valid) {
alert("Please, enter a valid number");
} else {
//planning on using this part to list my results in a bullet list
}
e.preventDefault();
}
因此,通过测试,该部分可以使用我的html代码,减去其他内容。 我的方法的其余代码。这是我遇到问题的地方。我可以做一个方法让它工作,但我有5个我要从中获取信息。
function GetCurrency(name, cRate) {
this.name = name;
this.c_rate = c_rate;
this.convert = function(usd) {
cRate * currencyTextInput //not sure if this will grab that info or not
return //haven't the slightest idea where to send this data
}
}
var e_u = {
name: "European Euro",
cRate: 0.77334,
convert: function() {
cRate * currencyTextInput
return exchangeRate.push(exchangeRate())//not sure if this is possible or do I need
} //to assign an array slot for it
};
var u_k = {
name: "British Pound Sterling",
cRate: 0.66202,
convert: function() {
cRate * currencyTextInput
return exchangeRate.push(exchangeRate())
}
};
var india = {
name: "Indian Rupee",
cRate: 55.7155,
convert: function() {
cRate * currencyTextInput
return exchangeRate.push(exchangeRate())
}
};
var aus = {
name: "Australian Dollar",
cRate: 1.02931,
convert: function() {
cRate * currencyTextInput
return exchangeRate.push(exchangeRate())
}
};
var japan = {
name: "Japanese Yen",
cRate: 102.063,
convert: function() {
cRate * currencyTextInput
return exchangeRate.push(exchangeRate())
}
};
基本上,尝试让用户输入一个数字,验证它,然后显示该数字(将是usd)并乘以每个转换率,然后显示结果以及与结果相关联的国家/货币子弹清单。希望通过我拥有或可能做到的事情,这是可能的。我只是不确定如何将方法数据推送到数组,我需要每个2位信息。这是如此恶化,开始网络编程课我的屁股。
答案 0 :(得分:0)
由于这是一项任务,我只会指出你正确的方向。
首先将所有货币数据合并到一个数组中,然后您可以更轻松地处理它,此外添加新货币应该要求您将其添加到此表而不是其他任何内容! :
var currencies = [
{name: "Australian Dollar", rate: 1.02931 },
{name: "Indian Rupee", rate: 55.1755 }
// ... etc
];
现在添加一个事件处理程序,以便在美元金额更改或单击转换按钮时触发。在该处理程序中,使用相应的货币值创建一个新数组:
var conversions = currencies.map (function (c) {
return '<li>' + c.name + ' : ' + c.rate * dollarValue + '</li>';
});
dollarValue
当然是您从用户输入中获得的价值。确保它是一个数字。您可以使用map
循环来处理货币数组,而不是for
。请注意,我已将<li>
</li>
中的每次转化整理好,以便插入HTML
使用ul
查找结果的document.getElementById
,并将其内容替换为上面计算的结果:
document.getElementById ('results').innerHTML = conversions.join ('');
在您的HTML中,<ul>
首先会为空。
就是这样。总共不应超过20行JS。
如果您遇到问题,请使用新代码发布新问题以及无法解决问题的原因。在此处添加评论,以便我收到您的新问题的提醒。