【问题标题】: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

如何消除这个错误?

【问题讨论】:

  • 您到底需要什么?你定义more_sel了吗?
  • 你想在这里做什么

标签: 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
});

【讨论】:

    猜你喜欢
    • 2014-05-04
    • 2020-06-18
    • 2012-02-12
    • 2018-03-23
    • 1970-01-01
    • 2011-09-12
    • 2016-02-28
    • 2014-10-17
    • 2010-11-06
    相关资源
    最近更新 更多