我正在使用 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
,其中包含您需要选择的元素的名称。
祝你好运!
关于javascript - 具有相同名称的单选按钮的在线测验,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35945241/