javascript 复选框数组

javascript array of checkboxes

我必须遍历一组复选框来询问复选框是否被选中,但我无法获得结果。这是我的代码

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] 它 returns 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')。这取决于您使用的 jQuery 的哪个版本 prop 可能没问题 (>1.6)。查看 this question

这是另一种方法,

var i = 0;
$(".checked").each(function(){
    if (this.checked){
        console.log("Checkbox number: " + i + " is checked");
        i++;
    }
});
$('.checked').each(function (index, element) {
    if ($(this).is(":checked")) {
        console.log("Checkbox number: " + index + " is checked");
    }
});