我为基本问题道歉,但我一直试图让这项工作很长一段时间,我似乎无法让这段代码返回一个值。
我很尴尬地承认我试图让它工作多久,以及我所看到的有多少StackOverflow问题,但是,没有一个像我的代码一样简单,当我试图更接近于如何我看起来,它不会提醒任何事情。
这个想法如下:
无论我做了多少次迭代,我的警报都是NaN。我真的可以使用一些建议。提前谢谢!
<html>
<head>
<title> Javascript </title>
<body>
<p> Enter two number for an average below </p>
<p> Number 1<input type="text" id="userInput1"></input></p>
<p> Number 2<input type="text" id="userInput2"></input></p>
<button id="averageButton"> Calculate</button>
<script type="text/javascript">
function average(a, b) {
return ((a + b) /2);
}
document.getElementById("averageButton").onclick = function (){
var a = document.getElementById("userInput1").value;
var b = document.getElementById("userInput2").value;
alert(average());
}
</script>
</body>
</html>
&#13;
答案 0 :(得分:1)
乍一看,您可能需要将输入值从字符串转换为浮点数,并将它们实际传递给平均函数。
答案 1 :(得分:1)
您未能将数字a,b传递给您的函数 - 这是一个简单的错误。
但由于输入被视为字符串,您还需要将它们转换为数字a * 1
请参阅注释代码
<html>
<head>
<title> Javascript </title>
<body>
<p> Enter two number for an average below </p>
<p> Number 1<input type="text" id="userInput1"></input></p>
<p> Number 2<input type="text" id="userInput2"></input></p>
<button id="averageButton"> Calculate</button>
<script type="text/javascript">
function average(a, b) {
// force the input as numbers *1
return ((a*1 + b*1) /2);
}
document.getElementById("averageButton").onclick = function (){
var a = document.getElementById("userInput1").value;
var b = document.getElementById("userInput2").value;
// pass the numbers to the average function!
alert(average(a,b));
}
</script>
</body>
</html>
答案 2 :(得分:0)
您可能想要将输入更改为
<input type="number">
以防止用户添加非数字值。
其次解析输入为document....value
返回字符串,
var a = parseFloat(document.getElementById("userInput1").value);
var b = parseFloat(document.getElementById("userInput2").value);
如果你这样做,你就不必处理做a*1
的有趣事务。
// force the input as numbers *1
return ((a*1 + b*1) /2);
此块不是必需的,因为将字符串与数字相乘会返回NaN值。