Javascript - 通过数组索引循环出现的问题
问题描述:
我在做一个测验,显示你有多少正确的问题。我设法让它与第一个问题一起工作,但我努力想弄清楚如何遍历数组中的所有其他问题。Javascript - 通过数组索引循环出现的问题
这里是我的JS代码:
var questionArray = new Array (8);
questionArray [0] = "q1"
questionArray [1] = "q2"
questionArray [2] = "q3"
questionArray [3] = "q4"
questionArray [4] = "q5"
questionArray [5] = "q6"
questionArray [6] = "q7"
questionArray [7] = "q8"
var correctAnswers = 0;
function checkQuestions()
{
var questions = document.getElementsByName(questionArray[0]);
var numberOfRadios = questions.length;
for(var i = 0; i < numberOfRadios; i++)
{
if(questions[i].checked)
{
if(questions[i].value == "correct")
{
correctAnswers++
}
}
}
document.getElementById("correctAnswers").innerHTML = "You got:" + "<br>" + correctAnswers + "/8!!";
}
答
questionArray[0]
返回 “Q1”。
如果你有名字的只有一个元素,那么questions.length
将等于1
因此,您for
循环将只重复一次。
你想要做什么,是这样的:
function checkQuestions()
{
for(var i = 0; i < questionArray.length; i++)
{
//I assume you have only one question per name, if not then you need id
var question = document.getElementsByName(questionArray[i])[0];
if(question.checked)
{
if(question.value == "correct")
{
correctAnswers++;
}
}
}
document.getElementById("correctAnswers").innerHTML = "You got:" + "<br>" + correctAnswers + "/8!!";
}
+1
我想他所说的问题是一组输入广播(回答),每个问题都有相同的名称 – nanndoj 2015-02-11 21:00:35
答
遍历问题以及..
function checkQuestions()
{
for (var j = 0; j < questionArray.length; j++)
var questions = document.getElementsByName(questionArray[j]);
...
}
document.getElementById("correctAnswers").innerHTML = "You got:" + "<br>" + correctAnswers + "/8!!";
}
请使用数组文本更容易,并具有更好的性能。 'var questionsArray = [“q1”,“q2”,“q3”]'等等 – 2015-02-12 20:10:42