我正在使用Js进行简单的测验,问题是我的内部循环(即i
)无法按预期工作。
我参加了3个问题,每个问题有3个单选选项,每个问题的选项名称相同。第一个问题的所有选项都有name='cap'
,第二个问题的name='an'
和第三个问题的name='lang'
。
我的js函数如下:
function my(){
var count=0;
var totalQuestions = 3;
var correctAnswers = 0;
var alertText;
var n=["cap","an","lang"];
var j,i;
for(j=0; j<n.length; ++j){
var x = document.getElementsByName('n[j]');
for(i = 0; i < x.length; ++i){
if (x[i].checked){
if (x[i].value == 'true'){
count=count+10;
correctAnswers++;
break;
}
}
}
}
if(correctAnswers == totalQuestions){
alertText = "Congratulations! You got all the questions right!";
}
else {
alertText = "You got " + correctAnswers + " correct answers and score is " + count;
}
alert(alertText);
}
最佳答案
更换线
var x = document.getElementsByName('n[j]');
至
var x = document.getElementsByName(n[j]);
这是有问题的,因为对于js,
getElementsByName('n[y]')
的意思是“获取名称为n[y]
的元素”,而不是列表n
的项目,其中包含需要选择的元素名称。祝你好运!