我正在尝试使用JavaScript圣经来完成和练习,并且无法让我的脚本运行。
该任务是创建一个页面,允许用户查询行星的名称,并通过与行星名称相匹配的脚本及其存储在关联数组中的数据,调用其距离和直径信息。
我试图通过一个按钮调用函数'getPlanetInfo'(onclick ='getPlanetInfo()')。但是,当我尝试运行它时,我的错误控制台报告它找不到名为'getPlanetInfo'的变量。
我在下面附上了我的JS和HTML代码。任何想法为什么我的功能没有被正确调用将是非常感激。
HTML:
<!DOCTYPE html>
<html>
<head>
...
<script type="text/javascript" src="planets.js"></script>
</head>
<body>
<h1>Check a planet's distance from the sun and its diameter!</h1>
<form>
<input type="text" name="entry" id="entry">
<input type="button" value="Check it!" onClick="getPlanetInfo()">
</form>
</body>
</html>
JS:
var planetNames = new Array(4);
planetNames[0] = "Mercury";
planetNames[1] = "Venus";
planetNames[2] = "Earth";
planetNames[3] = "Mars";
var planetDistances = new Array(4);
planetDistances[0] = "36 million miles";
planetDistances[1] = "67 million miles";
planetDistances[2] = "93 million miles";
planetDistances[3] = "141 million miles";
var planetDiameters = new Array(4);
planetDiameters[0] = "3,100 miles";
planetDiameters[1] = "7,700 miles";
planetDiameters[2] = "7,920 miles";
planetDiameters[3] = "4,200 miles";
function getPlanetInfo()
{
var selectedPlanet = document.getElementById("entry").value;
for (var i = 0; i < planetNames.length; i++)
{
if (planetNames[i] == selectedPlanet)
{
break;
}
}
if (i < planetNames.length)
{
alert(selectedPlanet + " is " + planetDistances[i] " in distance from the Sun and " + planetDiameters[i] + "in diameter.")
}
else
{
alert("Sorry, " + selectedPlanet + " isn't in the database.");
}
}
答案 0 :(得分:1)
这一行:
alert(selectedPlanet + " is " + planetDistances[i] " in distance from the Sun and " + planetDiameters[i] + "in diameter.")
在+
之后缺少planetDistances[i]
符号,因此该函数存在语法错误而未创建,并且在调用时自然找不到。
http://www.jsfiddle.net可以帮助您创建一个我们都可以看到的可重现的案例,在您需要提出问题时使用它。
答案 1 :(得分:0)
你错过了+
- 这个:
alert(selectedPlanet + " is " + planetDistances[i] " in distance from the Sun and " + planetDiameters[i] + "in diameter.")
应该是
alert(selectedPlanet + " is " + planetDistances[i] + " in distance from the Sun and " + planetDiameters[i] + "in diameter.")
在加载脚本时,你应该使用像Firebug这样的东西来捕获语法错误。