【问题标题】:array iteration in jqueryjquery中的数组迭代
【发布时间】:2015-07-14 07:50:02
【问题描述】:
这是我的代码
$('select.more-search').each(function(i, e){
more_srch[i] = $(this).attr('name');
$('#'+more_srch[i]+' :selected').each(function(j, selected){
more_sel[i][j] = $(selected).val();
});
});
它在控制台中显示错误为
TypeError: more_sel[i] is undefined
如何消除这个错误?
【问题讨论】:
标签:
jquery
arrays
multidimensional-array
【解决方案1】:
您需要先将more_sel[i] 初始化为一个空数组,然后才能分配给元素。
$('select.more-search').each(function(i, e){
more_srch[i] = $(this).attr('name');
more_sel[i] = [];
$('#'+more_srch[i]+' :selected').each(function(j, selected){
more_sel[i][j] = $(selected).val();
});
});
您可以使用.map(),而不是.each():
$('select.more-search').each(function(i, e){
more_srch[i] = $(this).attr('name');
more_sel[i] = $('#'+more_srch[i]+' :selected').map(function(j, selected){
return $(selected).val();
}).get(); // use .get() to turn returned jQuery object into normal array
});