javascript - 在循环中测试自定义属性

标签 javascript html custom-attributes

我有一个表格,我设置为要参加的测验。最终我会修改它来计算测验完成后的最终分数。但我被困在这一部分上。我想如果选中正确的框则添加一个点,如果选中错误的框则减去一个点。

正确答案的代码:

<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

最佳答案

试试这个 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/

相关文章:

javascript - 页脚居中 div

html - 在 DOM 元素中使用带有 bool 值的自定义属性

c# - 使用自定义属性获取程序集中的所有类型

javascript - 想要仅使用 d3.js 显示唯一值不起作用

javascript - 如何在 ES6 模板字符串中使用颜色?

javascript - 如何使用javascript获取方法参数的值?

javascript - Angular-gettext 不会更新代码中生成的字符串

javascript - 使用纯 Javascript 创建 input type=radio 并按名称检索它们(ie9 上的 ie7 标准)

jquery - 是否可以使用 JS 变量通过 jQuery attr() 函数设置自定义属性

javascript - EmberJs 弃用组件生命周期钩子(Hook) didReceiveAttrs