Javascript 使用同名单选按钮的在线测验
我正在用Js做一个简单的测试,问题是我的内部循环(即Javascript 使用同名单选按钮的在线测验,javascript,html,radio-button,Javascript,Html,Radio Button,我正在用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=["
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);
}
函数my(){
var计数=0;
var=3;
var=0;
var文本;
变量n=[“cap”、“an”、“lang”];
var j,i;
对于(j=0;j替换线
var x = document.getElementsByName('n[j]');
到
这是一个问题,因为对于jsgetElementsByName('n[y'))
意味着“获取名为n[y]
的元素”,而不是包含需要选择的元素名称的列表项n
祝你好运!var x=document.getElementsByName('n[j');
应该是
var x=document.getElementsByName(n[j])
getElementsByName
返回与名称匹配的所有元素
问题是您硬编码了字符串'n[j]'
,因此它会查找名称为'n[j]'
的所有元素
实际上,您希望在索引j
处从数组n
中查找名称,因此删除引号将实际计算表达式n[j]
更改代码
var x = document.getElementsByName('n[j]');
到
您现有的代码试图找到一个具有name='n[j]'
ie:string的元素。但是您想要的是计算表达式得到名称等于计算值的元素
谢谢。请告诉我行:for(i=0;ivar x = document.getElementsByName('n[j]');
var x = document.getElementsByName(n[j]);