我必须从10个不同的问题中算出正确的答案。 这些问题是这样制定的:
<input type='radio' name='question1'>answer wrong<br>
<input type='radio' name='question1' value='correct'>answer correct<br>
<input type='radio' name='question2'>answer wrong<br>
<input type='radio' name='question2' value='correct'>answer correct<br>
每次回答问题时都会运行此脚本:
var input = document.getElementsByTagName("input")
for (var i=0;i<input.length;i++) {
if (input[i].value=="correct") {
if (input[i].checked==true){
correct++
}
}
console.log(correct)
}
出于某种原因,在正确回答一个问题后,计数器将继续添加1 var correct
对于之后给出的每个答案,即使答案错误或根本没有检查。如果正确回答了2个问题,那么在此之后每个回答的问题将继续增加2个,依此类推。
答案 0 :(得分:1)
快速执行此操作的方法是使用querySelectorAll获取所有正确检查的答案:
document.querySelectorAll('input[type=radio][value=correct]:checked').length
input
我们只想查看输入 [type=radio]
输入必须是广播按钮[value=correct]
广播必须具有正确 :checked
正确广播必须选中 这是一个有效的例子:
Array.from(document.querySelectorAll('input[type=radio]')).forEach(item => {
item.addEventListener('click', e => {
let correct = document.querySelectorAll('input[type=radio][value=correct]:checked').length
console.log(correct)
})
})
&#13;
<input type='radio' name='question1'>answer wrong<br>
<input type='radio' name='question1' value='correct'>answer correct<br>
<input type='radio' name='question2'>answer wrong<br>
<input type='radio' name='question2' value='correct'>answer correct<br>
&#13;
答案 1 :(得分:0)
它正在计算任何时候的正确答案,你只是将所有正确的答案添加到一个永不复位的变量。
有很多方法可以做到这一点。您可以在每次检查所有答案时重置计数器变量,最后检查有多少是正确的。
var input = document.getElementsByTagName("input")
for (var i=0;i<input.length;i++) {
if (input[i].value=="correct") {
if (input[i].checked==true){
correct++
}
}
console.log(correct);
if(i==input.length)correct = 0;
}
if(correct == 10){console.log("player got 100%");}