我必须迭代一系列复选框,询问是否已选中该复选框,但无法获得结果。这是我的代码

var checkboxes = $(".checked");
for (var i = 0; i < checkboxes.length; i++) {
    var check = checkboxes[i];
    if(check.prop('checked')){
        console.log("Checkbox number: " + i + " is checked");
    }
}

最佳答案

通过在循环中执行checkboxes[i],它返回DOM元素而不是jQuery元素。

您可以用checkboxes[i]包裹$(),使DOM元素成为jQuery元素:

var checkboxes = $(".checked");
for (var i = 0; i < checkboxes.length; i++) {
    var check = $(checkboxes[i]);
    if(check.is(':checked')){
        console.log("Checkbox number: " + i + " is checked");
    }
}


我也将.prop('checked')更改为.is(':checked')。这取决于您使用的prop哪个版本的jQuery可以使用(> 1.6)。检出this question

10-08 16:54