jquery中的数组迭代

时间:2015-07-14 07:50:02

标签: jquery arrays multidimensional-array

这是我的代码

$('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

如何删除此错误?

1 个答案:

答案 0 :(得分: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(); 
    });
});

您可以使用.each()

,而不是使用.map()
 $('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
});