我一直在编写的这段 JavaScript 代码大部分都可以工作,但我一直遇到怪癖。正如您在评论中看到的那样,我在其他人周围工作,但我无法让靠近底部的部分执行。它是 if (isCorrect != "Yes") 行。我把它当作 if/else,但 else 永远不会执行。所以我把它做成了一个单独的 if 语句
function inputNum() {
/* initialize variables */
var inGuess = "";
var spaceChar = " ";
var loopCt;
var guessResult = "";
var correctNum;
var correctNum = getRandomInt(1, 100);
var guessNum = 0;
var guessLeft = 10;
var guessMsg = ""
var isCorrect = "No";
/* added the following so that when they try the game again it resets the results */
document.getElementById("fireworks").src = "images/Question_mark.png";
resetTable();
for (loopCt = 1; loopCt < 11; loopCt++) {
inGuess = prompt("Please enter your guess(enter -1 to exit) Do not press Enter", "0");
if (inGuess == "-1") {
break;
}
if (inGuess == null || inGuess == "") {
alert("Blanks are not allowed. To exit enter '-1'.");
} else {
guessNum = parseInt(inGuess, 10);
guessMsg = ", you have " + --guessLeft + " guesses left";
if (inGuess == correctNum) {
guessResult = "Correct!";
isCorrect = "Yes";
document.getElementById('emp' + loopCt).innerHTML = guessResult;
document.getElementById('ct' + loopCt).innerHTML = inGuess;
alert("Congratulations, you guess correctly!");
break;
} else if (guessNum < 1 || guessNum > 100) {
alert("You must choose a number between 1 and 100");
} else if (guessNum < correctNum) {
guessResult = "Too low";
} else {
guessResult = "Too high";
}
document.getElementById('emp' + loopCt).innerHTML = guessResult + guessMsg;
document.getElementById('ct' + loopCt).innerHTML = inGuess;
}
}
if (isCorrect == "Yes") {
document.getElementById("fireworks").src = "images/fireworks.jpg";
}
/* for some reason the else is not being picked up so I have to change it to another if statement
else
*/
if (isCorrect != "Yes") {
var errMsg = "The correct number was " + correctNum;
errMsg = errMsg + " Please try again.";
document.getElementById(guessResult).innerHTML = errMsg;
/* the line above this does not appear to function, don't know why so I am adding the line below*/
document.getElementById("fireworks").src = "images/wrong.png";
alert(errMsg);
}
}
/* random number function */
function getRandomInt(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
/* clear the results table */
function resetTable() {
/* the code below kept getting the error TypeError: document.getElementById(...) is null even though
I tried it with the code above that works so I have to do it brute force method
for (i = 1;i<11;i++)
{
document.getElementById('emp'+i).innerHTML=" ";
document.getElementById('ct'+i).innerHTML=" ";
}
*/
document.getElementById('emp1').innerHTML = " ";
document.getElementById('ct1').innerHTML = " ";
document.getElementById('emp2').innerHTML = " ";
document.getElementById('ct2').innerHTML = " ";
document.getElementById('emp3').innerHTML = " ";
document.getElementById('ct3').innerHTML = " ";
document.getElementById('emp4').innerHTML = " ";
document.getElementById('ct4').innerHTML = " ";
document.getElementById('emp5').innerHTML = " ";
document.getElementById('ct5').innerHTML = " ";
document.getElementById('emp6').innerHTML = " ";
document.getElementById('ct6').innerHTML = " ";
document.getElementById('emp7').innerHTML = " ";
document.getElementById('ct7').innerHTML = " ";
document.getElementById('emp8').innerHTML = " ";
document.getElementById('ct8').innerHTML = " ";
document.getElementById('emp9').innerHTML = " ";
document.getElementById('ct9').innerHTML = " ";
}