用于填充多维数组的jQuery复选框

时间:2014-09-09 17:06:19

标签: jquery html checkbox multidimensional-array populate

我有一个复选框列表:

<input type="checkbox" name="a" value="cb1" value2="value01" class="sort" />
<input type="checkbox" name="a" value="cb2" value2="value02" class="sort" />
<input type="checkbox" name="a" value="cb3" value2="value03" class="sort" />
<input type="checkbox" name="a" value="cb4" value2="value04" class="sort" />

我想做的是,当我打开或关闭它们时,它们会填充一个多维数组(Arr_Sort [0] [1]),只有两个级别。

这里的脚本代码可以很好地填充单维数组,我只是不知道如何修改它以填充多维数组。

$(document).ready(function(){

    $(".sort").change(function()
    {
        var arr_sort = new Array();

        $(".sort").each(function()
        {
            if( $(this).is(':checked') )
            {
                arr_sort.push($(this).val());
            }
        });
        alert( arr_sort );
    });
});

2 个答案:

答案 0 :(得分:1)

尝试替换arr_sort.push( $( this ).val() );

arr_sort.push( new Array( $( this ).val(), $( this ).attr( 'value2' ) ) );

答案 1 :(得分:0)

 $(document).ready(function(){
var arr_sort = [];
    $(".sort").change(function(){
        $(this).each(function(key,val){
            if( $(this).is(':checked') ){
                arr_sort[ $(this).index() + 1] = $(this).val();
            }else{
                arr_sort.remove($(this).val());
            }
        });
        console.log( arr_sort );
    });
});

Array.prototype.remove = function() {
    var what, a = arguments, L = a.length, ax;
    while (L && this.length) {
        what = a[--L];
        while ((ax = this.indexOf(what)) !== -1) {
            this.splice(ax, 1);
        }
    }
    return this;
};
  1. 将ARRAY声明为[]以提高性能。
  2. 声明数组无法更改功能。
  3. 处理否定方案,如果删除了该值,则应将其从数组中删除。