在尝试推送字段值时无法读取未定义的属性推送

时间:2018-06-06 15:19:27

标签: javascript jquery

目前代码如下所示,

var child_tids = [];
      $('.term-selection').each(function(index){
        var field = $(this).attr('field');
        child_tids.push($(this).val());
      });

我需要根据属性'field'来隔离它 所以我尝试了下面的

var child_tids = [];
          $('.term-selection').each(function(index){
            var field = $(this).attr('field');
            child_tids[field].push($(this).val());
          });

但是它给了我控制台中的错误“无法读取未定义的属性推送,我该如何实现呢?

2 个答案:

答案 0 :(得分:3)

child_tids需要是一个对象,然后为您可以尝试的每个字段创建一个数组:

var child_tids = {};
$('.term-selection').each(function(index){
   var field = $(this).attr('field');
   if (!child_tids[field]) child_tids[field] = [];
   child_tids[field].push($(this).val());
});

答案 1 :(得分:1)

您需要的是一个对象而不是一个数组。使用类似的东西:

var child_tids = {};
$('.term-selection').each(function(index) {
  var field = $(this).attr('field');
  if (typeof child_tids[field] != "object") child_tids[field] = [];
  child_tids[field].push($(this).val());
});