外化Javascript数组

时间:2015-06-16 16:13:53

标签: javascript arrays

我们正试图将下面的数组“问题”外部化。我们尝试的是将数组复制粘贴到我们命名为“qList.js”的外部javascript文件中,我们尝试将其包含在标记中,如下所示: <script src ="qList.js">。不幸的是,这不起作用。有什么提示吗?

包含在html中的数组的代码如下(在仅外化数组之前):

var pos = 0, test, test_status, question, choice, choices, chA, chB, chC, chD, correct = 0; 

var questions = [
    ["Question 1", "Choice1", "Choice2", "Choice3", "Choice4", "B"],
    ["Question 2", "Choice1", "Choice2", "Choice3", "Choice4", "C"],
    ["Quesiton 3", "Choice1", "Choice2", "Choice3", "Choice4", "A"]
];
function _(x) {
        return document.getElementById(x);
      }

function renderQuestion() {
    test = _("test");
    if (pos >= questions.length) {
      test.innerHTML = "<h2>You got "+correct+" of "+questions.length+" questions correct</h2>";
     _("test_status").innerHTML = "Test Completed";
     pos = 0;
     correct = 0;
     return false;
   }
   _("test_status").innerHTML = "Question " + (pos+1) + " of " + questions.length;
   question = questions[pos][0];
   chA = questions[pos][1];
   chB = questions[pos][2];
   chC = questions[pos][3];
   chD = questions[pos][4];
   test.innerHTML = "<h3>"+question+"</h3>";
   test.innerHTML += "<input type='radio' name = 'choices' value='A'> "+chA+"<br>";
   test.innerHTML += "<input type='radio' name = 'choices' value='B'> "+chB+"<br>";
   test.innerHTML += "<input type='radio' name = 'choices' value='C'> "+chC+"<br>";
   test.innerHTML += "<input type='radio' name = 'choices' value='D'> "+chD+"<br><br>";
   test.innerHTML += "<button onclick='checkAnswer()'>Submit</button>";
 }
 function checkAnswer(){
   choices = document.getElementsByName("choices");
   for (var i=0; i<choices.length; i++) {
     if (choices[i].checked) {
       choice = choices[i].value;
     }
   }
     if(choice == questions[pos][5]) {
         correct++;
     }
       pos++;
       renderQuestion();
    }
      window.addEventListener("load", renderQuestion, false);
    </script>     

1 个答案:

答案 0 :(得分:0)

我认为你走在了正确的轨道上。以下是如何做到这一点:

首先,创建该文件 qList.js ,并像以前一样为其提供值:

var questions = [
    ["Question 1", "Choice1", "Choice2", "Choice3", "Choice4", "B"],
    ["Question 2", "Choice1", "Choice2", "Choice3", "Choice4", "C"],
    ["Quesiton 3", "Choice1", "Choice2", "Choice3", "Choice4", "A"]
];

现在,使用以下行将此文件导入到.html文件之前的其他JavaScript文件中:

<script src="qList.js"></script>

由于关闭</script>标记,或者您在使用它的实际代码下面有脚本标记,您可能遇到了问题。