我们正试图将下面的数组“问题”外部化。我们尝试的是将数组复制粘贴到我们命名为“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>
答案 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>
标记,或者您在使用它的实际代码下面有脚本标记,您可能遇到了问题。