我有一个表格,我设置为要参加的测验。最终我会修改它来计算测验完成后的最终分数。但我被困在这一部分上。我想如果选中正确的框则添加一个点,如果选中错误的框则减去一个点。
正确答案的代码:
<input type="checkbox" name="q3" id="q1javascript" answer="true">
错误答案代码:
<input type="checkbox" name="q3" id="q3xhtml" answer="false">
Javascript 检查它:
function test() {
var boxes = document.getElementsbyName('q3');
var score = 0;
var i = 0;
while (i < 4) {
var answer = boxes[i].getAttribute('answer');
if (answer === 'true') {
score++;
}
else {
score--;
}
i++;
}
alert(score);
}
最佳答案
试试这个 JSFiddle:http://jsfiddle.net/vCz2T/1/
复选框现在使用 data-answer="true"
或 data-answer="false"
。任何自定义数据(例如 answer
属性)都应以 data-
:
<input type="checkbox" name="q3" id="q3css" data-answer="true">
test()
函数已更改为:
function test() {
var boxes = document.getElementsByName('q3');
var score = 0;
var i, box, answer;
for (i = 0; i < boxes.length; i++) {
box = boxes[i];
if (box.checked) {
answer = box.getAttribute('data-answer');
if (answer === 'true') {
score++;
} else {
score--;
}
}
}
alert(score);
}
您现在必须执行getAttribute('data-answer')
。另外,您应该检查 box.checked
,以便只计算选中的复选框。
关于javascript - 在循环中测试自定义属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15469524/