繁体   English   中英

HTML5 Javascript,使用数组更新文本

[英]HTML5 Javascript, Updating a text using arrays

别介意我的代码,在专业人士看来,这很糟糕aha,但是无论如何,我正在编写一个游戏,用户必须用3个选项来回答一个问题,这个问题,这3个答案都设置在数组中[1] [10]。 我的问题是,当提出问题时,该问题不会在网站上更新。

   <head>
   <script type="text/javascript">
    var Question = new Array(10);
    var Answer1 = new Array(10);
    var Answer2 = new Array(10);
    var Answer3 = new Array(10);
    var i = 1;

   (example of one question)
    Question[1] = "What time is it?";
    Answer1[1] = "1.I dont know";
    Answer2[1] = "2.Party Time";
    Answer3[1] = "3.None of your business";
   </script>

   (my function that writes the questions/answers)
    <script type="text/javascript">
        function displayQuestions() {
            document.write(Question[i].toString());

            document.write("\n <br>" + Answer1[i].toString());

            document.write("\n <br>" + Answer2[i].toString());

            document.write("\n <br>" + Answer3[i].toString());   
    }
    </script>
    </head>


 <body>  

  <div>My Question Game!</div>
    <div id="Question"><script type="text/javascript">displayQuestions();</script></div>

    <button onclick="answerGet()">Answer</button> 

    <script type="text/javascript">
     function answerGet()
        {
        var answer = 0;    
        answer = parseInt(prompt("Please enter your answer (1 - 3) "));
        if (answer < 4 && answer > 0) {

          } else if (isNaN(answer)) {
            parseInt(prompt("It is not a number. Please enter a number from 1 to 3", ""));

         } else {
         parseInt(prompt("Your number (" + answer + ") is above 3. Please enter a number from 1                to 3")); 

         if ((answer() === CorrectAnswer[i])) {
                score = score + 50;
            } 
            i = i + 1;
            alert(i);
            Question = Question[i];
            Answer1 = Answer1[i];
            Answer2 = Answer2[i];
            Answer3 = Answer3[i];
            CorrectAnswer = Correctanswer[i];
        }

为了使您的程序更加流畅,您应该使用jquery。

如果要解决当前的问题,请在给出正确答案后尝试调用displayQuestions函数,如下所示:

        Answer1 = Answer1[i];
        Answer2 = Answer2[i];
        Answer3 = Answer3[i];
        CorrectAnswer = Correctanswer[i];
        displayQuestions();

您的代码还不错。 您可以通过以下方式更新问题:

在您的answerGet()函数中,将以下内容添加到if ((answer() === CorrectAnswer[i]))块中

var question = document.getElementById('question');
question.innerHTML = displayQuestions();

这将从displayQuestions()获取文本,并将其放入问题div中。 但是仍然存在问题, displayQuestions()函数实际上会打印到屏幕上。 我们希望它返回文本,如下所示:

function displayQuestions() {
    var text = Question[i].toString();
    text += "\n <br>" + Answer1[i].toString())
    text += "\n <br>" + Answer2[i].toString();
    text += "\n <br>" + Answer3[i].toString(); 
    return text;  
}

现在是最后一个问题:打印第一个问题的代码现在是错误的,因为displayQuestions()函数不打印任何内容,仅返回文本。 让我们修复一下:

<div id="Question"><script type="text/javascript">document.write(displayQuestions());</script><div>

那应该做。 如果您在执行该操作时遇到任何麻烦,请告诉我。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM