序列化对象数组

net*_*iul 1 javascript jquery

我正在nodevalues用对象填充数组.它看起来像这样:

nodevalues.push({id: this.id, left: left, right: right});

该行位于$.each()迭代器内部,迭代器遍历某些li节点并计算leftright值.

所以我有一个包含几个看起来相同的对象的数组:屏幕转储镀铬控制台

是否可以使用jQuery.post()?将此数组序列化为url字符串以进行数据库存储?

调用$(nodevalues).serialize()什么都不$.param(nodevalues)返回并返回undefined=undefined&undefined=undefined&undefined=undefined&undefined=undefined&undefined=undefined&undefined=undefined&undefined=undefined&undefined=undefined&undefined=undefined&undefined=undefined...

Ric*_*ton 11

jQuery.param()可能会做你想要的

var dataString = jQuery.param(nodevalues);
Run Code Online (Sandbox Code Playgroud)

似乎param只适用于对象,而不是数组.

如果将数组包装在一个对象中,它可以正常工作:

var nodevalues = [];

nodevalues.push({id: "node1", left: 1, right: 20});
nodevalues.push({id: "node2", left: 2, right: 10});
nodevalues.push({id: "node3", left: 3, right: 30});
nodevalues.push({id: "node4", left: 4, right: 40});

var data = { data: nodevalues };

alert($.param(data));
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/4NELt/