方法,在javascript中创建货币转换器的对象

时间:2013-06-03 06:10:24

标签: javascript object methods

这将是一个漫长的过程。我有一个我一直在做的任务,我一直有问题。我有大量的代码,我不太确定如何使它正常运行,如果我正在尝试做什么。我将发布这些部分,也许你们中的一些人可以看到我只是试图将它保存在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位信息。这是如此恶化,开始网络编程课我的屁股。

1 个答案:

答案 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。

如果您遇到问题,请使用新代码发布新问题以及无法解决问题的原因。在此处添加评论,以便我收到您的新问题的提醒。