【发布时间】:2017-07-19 02:08:00
【问题描述】:
我想通过 AJAX 发送一个多级数组。所以我尝试制作如下对象的对象:
var info = {};
info.pickup = {};
info.pickup.contact = {};
info.pickup.items_quantity = {};
info.pickup.items = {};
info.delivery = {};
info.delivery.contact = {};
info.delivery.level = {};
然后我开始填充对象,例如:
$('.operation-create .pickup .contact-details').each(function () {
var arr = {};
arr['contact_name'] = $(this).find('input[name="pickup-contact-name"]').val();
arr['contact_phone'] = $(this).find('input[name="pickup-contact-phone"]').val();
arr['pickup-suburb'] = $(this).find('select[name="pickup-suburb"]').val();
arr['single-pickup-address'] = $(this).find('input[name="single-pickup-address"]').val();
info.pickup.contact.push(arr);
});
info.pickup.push(info.pickup.contact);
等等……
但不幸的是,它没有用。我收到此错误:
info.pickup.contact.push 不是函数
我应该在这里做什么?通过 AJAX 发送这个数组的正确方法是什么?
【问题讨论】:
-
将
contact更改为数组:info.pickup.contact = []; -
您的数据结构有点不清楚,因为您将
info.pickup用作带有推送对象的数组,例如info.pickup.contact,同时您将其用作具有自定义属性的普通对象。跨度> -
@NinaScholz 我真的不擅长 js 对象,这就是为什么我对声明这些数组感到困惑
标签: javascript jquery arrays javascript-objects