Javascript 获取jQuery中数组中复选框列表的值

Javascript 获取jQuery中数组中复选框列表的值,javascript,jquery,checkbox,Javascript,Jquery,Checkbox,我有一个复选框列表,当页面加载时,所有复选框都被预先选中 首先,我想读取所有复选框(选中)值并存储在全局数组中 稍后,每当用户单击任何复选框(未选中/选中),我都希望仅使用选中复选框的值更新数组 所有这些我都想在jQuery中完成 谢谢我假设您想要的是选中项目的名称或id,因为复选框值是布尔值 var checked = {}; $(':input[type="checkbox"]').each(function() { var name= this.name; var val

我有一个复选框列表,当页面加载时,所有复选框都被预先选中

首先,我想读取所有复选框(选中)值并存储在全局数组中

稍后,每当用户单击任何复选框(未选中/选中),我都希望仅使用选中复选框的值更新数组

所有这些我都想在jQuery中完成


谢谢

我假设您想要的是选中项目的名称或id,因为复选框值是布尔值

var checked = {};
$(':input[type="checkbox"]').each(function() {
    var name= this.name;
    var val = this.checked;
    if (val) {
        checked[name] = val;
    }
}).on('change', function() {
    var name = this.name;
    var val = this.checked;
    if (val) {
        checked[name] = val;
    } else {
        delete checked[name];
    }
});
然后,选中的对象
将包含键,并且只有与选中项目对应的键才会出现在该对象中


进行演示您的意思是这样的吗

var arrCheckboxes;
var checkboxSelector = "input[type='checkbox']";
$("body").delegate(checkboxSelector , "click", function(){
    arrCheckboxes = $(checkboxSelector).map(function() {
        return this.checked;
    }).get();
});
(也许您应该将$(“body”)更改为更精确的容器)

如果您想要一个包含名称为(…或id或元素)的对象的数组。。。您可以这样做:

var arrCheckboxes;
var checkboxSelector = "input[type='checkbox']";
$("body").delegate(checkboxSelector , "change", function(){
    arrCheckboxes = $(checkboxSelector).map(function() {
        return { name: this.name, val: this.checked };
    }).get();
});

var someGlobalArray=新数组;
$(“.chk”)。单击(函数(){
someGlobalArray=[];
$('.chk:checked')。每个(函数(){
someGlobalArray.push($(this.val());
});
控制台日志(someGlobalArray);
});

我不知道你为什么要把它放到一个数组中,你有一个控件数组。。。它已经有效地存在,无需重复工作。您在任何答案或注释中找到解决方案了吗?我有以下复选框ul>li>input$(“ul”)。委托(…如果页面上有多个列表,则向ul和选择器添加一个类。当您单击复选框时,它将跳转到容器(在本例中为
    )。这样,您可以绑定一个事件,而不是每个复选框绑定一个事件。这很好,再次选中复选框时如何更新。我有一个函数updateCategoryList(){//g_categoryList=[];$('.g_chkCat:checked')。每个(函数(){g_categoryList.push($(This).val();});//$('#t').val(categoryList));警报(“长度:”+g_categoryList.length+“值:”+g_categoryList);}如何链接单击复选框再次调用此函数$(“.g_chkCat”)。单击(函数(){g_categoryList=[];$('.g_chkCat:checked')。每个(函数(){g_categoryList push($(this.val());});/$('#t').val(categoryList));警报(“长度:+g_categoryList length+)”+g_分类列表);}
    <input type="checkbox" value="somevalue1" class="chk">
    <input type="checkbox" value="somevalue2" class="chk">
    <input type="checkbox" value="somevalue3" class="chk">
    <input type="checkbox" value="somevalue4" class="chk">
    <input type="checkbox" value="somevalue5" class="chk">
    <script>
    var someGlobalArray = new Array;
    
    $(".chk").click(function() {
        someGlobalArray=[];
        $('.chk:checked').each(function() {
            someGlobalArray.push($(this).val());
        });
        console.log(someGlobalArray);
    });
    </script>