1

我有以下函数返回一个已选中复选框的数组。

function grabData(checked) {
    return $('.product_category_selector' + (checked? ':checked' : ':not(:checked)')).map(function (index, chk) {
        return $(chk).data('id');
    }).get();

在我的主要处理功能中,我目前将“状态”硬编码为1

使这种动态变化的最佳方法是什么?

完整代码:

        $('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
                };
4

1 回答 1

0

使用:checked选择器只获取您感兴趣的那些,然后将这些data-id属性映射到一个数组。

没有grabData()电话:

var $checked = $(":checked");
var data = $.map($checked, function(item){ return item.attr('data-id') });

打电话grabData()

function grabData(){
    var $checked = $(":checked");
    var data = $.map($checked, function(item){ return item.attr('data-id') });

    return data;
}

var data = grabData();
于 2013-09-27T05:33:54.567 回答