0

我怎样才能获得未选中复选框的 ID?

我有下面的代码,但我似乎在用于的数组中获得了一个值state

$("input[type='checkbox']").each(function(){
                 if ($(this).is(":checked")) 
                 {
                    checkbox.push($(this).data("id"));
                    state = 1;
                 }else{
                    $("input[type='checkbox']").attr('checked', false);
                    checkbox.push($(this).data("id"));
                    state = 0;
                 }
4

2 回答 2

1

您可以使用not来获取未选中的。

$("input[type='checkbox']").not(':checked').each(function(){
     checkbox.push($(this).data("id"));
});

一个问题可能是你正在做

$("input[type='checkbox']").attr('checked', false);

在您的 else 条件下,如果您的第一个元素转到 else 可能会导致将 all 设置为未选中(如果attr工作得很好)。

如果你想要一个 0..1 的数组

var checkbox=[], state=[]; 
$("input[type='checkbox']").each(function () {
    var flg = this.checked ? 1 : 0;
    checkbox.push($(this).data("id"));
    state.push(flg);
});
于 2013-09-28T03:01:23.933 回答
0

获取一组未选中的复选框

var uncheckedIds = $("input[type='checkbox']").not(':checked').map(function(){
    return $(this).data('id');
}).get();
于 2013-09-28T03:08:14.890 回答