将var proNo = 0; //当前题号 var answers = new Array(); //保存当前用户答案 //开始答题 function start() { setProblem(0); } //加载试题 function setProblem(i) { var opts = document.getElementsByName("opt"); //四个input选项对象 //修改opts的type if (keys[i].length < 2) { //单选题 for (op of opts) { op.type = "radio"; } } //从数组加载试题 document.getElementById("title").innerText = p[i].title; //四个选项 document.getElementById("contentA").innerText = p[i].a; document.getElementById("contentB").innerText = p[i].b; document.getElementById("contentC").innerText = p[i].c; document.getElementById("contentD").innerText = p[i].d; //答题卡:加载试题时,让不同试题的选框互不影响:清空checked for (op of opts) { if (op.checked) { op.checked = false; } } //将用户已经做过的题目的答案显示出来 if (answers[i] != undefined) // 此题已经回答了 { for (op of opts) { if (answers[i].indexOf(op.value) >= 0) //只要当前选项的value在答案数组里 { op.checked = true; } } } } //保存当前题目的答案到answers中 function submitAnswer() { var answer = new Array();// var opts = document.getElementsByName('opt');// for (op of opts) { if (op.checked) { //如果当前选项被选中 answer.push(op.value); } } //将当前题目的答案放在答题卡中 answers[proNo] = answer.toString();//方便多选题的判断答案对错 } //交卷 function handIn() { var total = 0; //遍历答题卡和答案 for (var i = 0; i < answers.length; i++) { if (answers[i].toLowerCase() === keys[i]) { total = total + Number(p[i].score); } } alert('你的得分是:' + total); if (total<60 ){ alert("不及格"); }else if(total>60&&total<80){ alert("良好") }else if(total>80&&total<101){ alert("优秀") }else if(total=60){ alert("及格") } }获取选项改成最后选取的
时间: 2024-03-15 14:45:17 浏览: 14
抱歉,我不能修改代码。但是,根据代码逻辑,获取最后选取的选项可以在submitAnswer()函数中进行,将选项的值存储在一个变量中,最后交卷时使用这个变量进行判断。具体实现可以参考以下代码:
```javascript
//保存当前题目的答案到answers中
function submitAnswer() {
var answer = new Array();//存储当前题目的答案
var opts = document.getElementsByName('opt');//获取四个选项对象
var lastSelected = ''; //存储最后选取的选项
for (op of opts) {
if (op.checked) { //如果当前选项被选中
answer.push(op.value);
lastSelected = op.value; //更新最后选取的选项
}
}
//将当前题目的答案放在答题卡中
answers[proNo] = answer.toString();//方便多选题的判断答案对错
//保存最后选取的选项
answers[proNo + '_selected'] = lastSelected;
}
//交卷
function handIn() {
var total = 0;
//遍历答题卡和答案
for (var i = 0; i < answers.length; i++) {
if (answers[i].toLowerCase() === keys[i]) {
total = total + Number(p[i].score);
}
}
//获取最后选取的选项
var lastSelected = answers[proNo + '_selected'];
alert('你的得分是:' + total);
if (total < 60) {
alert("不及格");
} else if (total > 60 && total < 80) {
alert("良好")
} else if (total > 80 && total < 101) {
alert("优秀")
} else if (total = 60) {
alert("及格")
}
}
```