如何解决这个脚本?

时间:2019-02-16 13:16:39

标签: javascript

我正在尝试运行下面的脚本,它给出了一个错误:game.js:35 Uncaught TypeError:无法读取未定义的属性'classList'         在HTMLDivElement。 (game.js:35)

the error happens right here : allNumbers[i].classList.remove("show");

var numberOfCircles = 9;
var rangeOfNumbers =1000;
var circles = document.querySelectorAll(".circle-number");
var generateRandomNumbers =[];
/*var pickedNumber = pickNumber();*/
var messageToDisplay = document.querySelector(".guess-number");
var krug = document.querySelectorAll(".circle");
var numberToGuess;
var numberPosition;
var counter=0;
var allNumbers= document.querySelectorAll(".show");

randomNumbers(numberOfCircles,rangeOfNumbers);
randomNumberToDisplay();
compareNumbers();
reset();



function compareNumbers(){
    for (var i=0; i < allNumbers.length; i++){
        krug[i].addEventListener("click", function(){
            allNumbers[i].classList.remove("show");
            counter +=1;        
            if(Number(circles.textContent) ==numberToGuess){
                circles.style.color ="green";
                alert("You guessed right from" + counter+" try")
            } else {
              this.style.color ="red";
            }
        })
    }
}

1 个答案:

答案 0 :(得分:0)

在commpareNumbers中,将其添加到for循环之前:

if (allNumbers === undefined) {
  return
}

未定义可能是由于

var allNumbers= document.querySelectorAll(".show");

不返回任何结果。