我有一个复选框列表:
<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 );
});
});
答案 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;
};