Javascript 复选框未选中状态

Javascript 复选框未选中状态,javascript,jquery,checkbox,Javascript,Jquery,Checkbox,我有下面的函数,它返回一个复选框数组 function grabData(checked) { return $('.product_category_selector' + (checked? ':checked' : ':not(:checked)')).map(function (index, chk) { return $(chk).data('id'); }).get(); 在我的主要处理功能中,我目前将“状态”硬编码为1 让这一切充满活力的最佳方式是

我有下面的函数,它返回一个复选框数组

function grabData(checked) {
    return $('.product_category_selector' + (checked? ':checked' : ':not(:checked)')).map(function (index, chk) {
        return $(chk).data('id');
    }).get();
在我的主要处理功能中,我目前将“状态”硬编码为1

让这一切充满活力的最佳方式是什么

完整代码:

使用:选中选择器仅获取您感兴趣的数据,然后将这些数据id属性映射到数组

无数据调用:

使用grabData调用:


状态的含义是什么?在动态中应该为状态指定哪些值?@Sudhir state是复选框的0和的选中状态1@RohanKumar状态应为0或1,但这取决于数据中的内容,因为您正在硬编码方法中的选中状态。。。。没关系。。否则可以使用三元运算符,如checked?1:0这允许我使用相同的数据数组吗?我是说你甚至不使用grabData函数。或者,如果需要,将其移动到grabData中并添加返回数据;我得到了一个错误uncaughttypeerror:Object没有方法'attr',你能给我一个将它移动到grabdata中的例子吗?在这一行'var data=$.map$checked,functionitem{return item.attr'data-id'};'我得到未捕获的TypeError:对象没有方法“attr”
        $('body').on("click", "#brands_by_category_submit_btn", function (e) {
             e.preventDefault();               
            var self       = $(this);
            var sortOrder  =  []; 
            var id         = $("#manID").data("id");
            var brand_name = $("#brand_name").data("id");
            var data       = grabData(true);

            $(".order").each(function(){
                sortOrder.push($(this).val());
            })

            if(data.length)
            {
                var data_array = { 
                    id : id,
                    brand_name : brand_name, 
                    cat_id     : data,
                    sortOrder  : sortOrder, 
                    state      : 1
                };
var $checked = $(":checked");
var data = $.map($checked, function(item){ return item.attr('data-id') });
function grabData(){
    var $checked = $(":checked");
    var data = $.map($checked, function(item){ return item.attr('data-id') });

    return data;
}

var data = grabData();