编程和尝试完成单词猜测游戏的新手。我在for循环中遇到错误,其中jslint告诉我问题是“使用严格”。我在控制台上收到一条未定义的错误消息。即使经过广泛的谷歌搜索,也无法理解为什么。
下面是我的js和底部的相应html。任何帮助将非常感谢!
var randomWordArr = ['Tyrannosaurus', 'Stegosaurus', 'Velociraptor'];
//choose random word from the dino array
var randomWord = randomWordArr[Math.floor(Math.random() * randomWordArr.length)];
var s;
var count = 0;
var answerArray = [];
function startGame() {
// Set up the answer array
for (var i = 0; i < randomWord.length; i++) {
answerArray[i] = "_";
}
s = answerArray.join(" ");
document.getElementById("answer").innerHTML = s;
}
function Letter() {
//get the letter typed in the box
var letter = document.getElementById("letter").value;
//make sure we have a guess(can add more checks liek only letters, etc)
if (letter.length > 0) {
for (var i = 0; i < randomWord.length; i++) {
if (randomWord[i] === letter) {
//assign it to letter
answerArray[i] = letter;
}
}
count++;
document.getElementbyId("counter").innerHTML = "No. of clicks " + count;
document.getElementbyId("answer").innerHTML = answerArray.join(" ");
}
}
onload = "startGame()";
<form id="hangmanForm">
<input id="letter" type="text">
<input type="button" value="letter" onClick="Letter()" />
<p id="answer"></p>
<p id="counter"></p>
<p id="stat"></p>
</form>
答案 0 :(得分:-1)
您在javascript中使用了getElementbyId()。这应该是getElementById(),也就是说, By 应该有一个大写的 B 。
因此,代码应为:
document.getElementById("counter").innerHTML = "No. of clicks " + count;
document.getElementById("answer").innerHTML = answerArray.join(" ");
要允许代码运行,您需要使用以下代码行调用java脚本末尾附近的StartGame函数:
startGame();
您可以找到代码here的工作版本。
可以在游戏本身方面进行的进一步改进是,可以在每次输入后清除字母文本框,以便为下一次输入做好准备。这可以按如下方式完成:
document.getElementById("letter").value = "";
我已将此添加到上面链接中提供的解决方案中。