代码之家  ›  专栏  ›  技术社区  ›  Omar Ali

未捕获的TypeError:无法读取未定义的属性“quest”

  •  1
  • Omar Ali  · 技术社区  · 9 年前

    我知道以前可能有人问过这个问题,但我相信这个很棒的社区可以原谅我:) 我正在开发(测试时间)应用程序,但有一个bug正在杀死我:( 当我每隔一次运行此应用程序并按下锁定按钮时,它会按需要运行,但在随机单击次数(可能是4次或2次)后,它会停止并出现以下错误:

             Uncaught TypeError: Cannot read property 'quest' of undefined
    at QuestionReset 
    

            $(document).ready(function () {
    var overwallScore = 0;
    //prototype
    function Question(quest, option1, option2, option3, correct) {
        this.quest = quest;
        this.option1 = option1;
        this.option2 = option2;
        this.option3 = option3;
        this.correct = correct;
    
    }
    //creating questions
    var question1 = new Question("1 + 1", 2, 3, 3, 1);
    var question2 = new Question("2 + 2", 4, 3, 3, 2);
    var question3 = new Question("3 + 3", 6, 3, 3, 3);
    var question4 = new Question("4 + 4", 8, 3, 3, 1);
    var question5 = new Question("5 + 5", 10, 3, 3, 2);
    var question6 = new Question("6 + 6", 12, 3, 3, 3);
    //the questions array
    var questions = [];
    //pushing questions to array
    questions.push(question1);
    questions.push(question2);
    questions.push(question3);
    questions.push(question4);
    questions.push(question5);
    questions.push(question6);
    var randomQuestionIndex = Math.floor(Math.random() * 6 + 1);
    
    function QuestionPre() {
        randomQuestionIndex = Math.floor(Math.random() * 6 + 1);
        document.querySelector("#question").innerHTML = questions[randomQuestionIndex].quest;
        document.querySelector(".option-1").innerHTML = questions[randomQuestionIndex].option1;
        document.querySelector(".option-2").innerHTML = questions[randomQuestionIndex].option2;
        document.querySelector(".option-3").innerHTML = questions[randomQuestionIndex].option3;
    
    }
    QuestionPre();
    
    function QuestionReset() {
        randomQuestionIndex = Math.floor(Math.random() * 6 + 1);
        document.querySelector("#question").innerHTML = questions[randomQuestionIndex].quest;
        document.querySelector(".option-1").innerHTML = questions[randomQuestionIndex].option1;
        document.querySelector(".option-2").innerHTML = questions[randomQuestionIndex].option2;
        document.querySelector(".option-3").innerHTML = questions[randomQuestionIndex].option3;
    }
    document.querySelector(".lock-btn").addEventListener("click", function () {
        if (document.querySelector(".option-" + questions[randomQuestionIndex].correct + "-check").checked === true) {
            alert("Correct, such a Genius !");
            overwallScore = overwallScore + 1;
            QuestionReset();
        } else {
            alert("Wrong mate, such a bad luck !");
            randomQuestionIndex = Math.floor(Math.random() * 6 + 1);
            QuestionReset();
    
    
        }
    }); });
    

    提前谢谢。

    1 回复  |  直到 9 年前
        1
  •  0
  •   sid-m    9 年前

    var randomQuestionIndex=数学。地板(数学随机()*6+1);

    的价值 randomQuestionIndex +1 部分和它应该工作。

    推荐文章