我正在用对象填充数组nodevalues
。它看起来像这样:
nodevalues.push({id: this.id, left: left, right: right});
此行位于$.each()
迭代器内,迭代一些li
个节点,并计算left
和right
值。
所以我有一个包含几个看起来相同的对象的数组:
是否可以使用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
...
答案 0 :(得分:11)
jQuery.param()可能会做你想要的事情
var dataString = jQuery.param(nodevalues);
似乎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));
答案 1 :(得分:1)
您可以使用JSON库中的stringify函数。
答案 2 :(得分:0)
您可以将数据作为第二个参数提供给jquery.post()
jQuery.post( url [, data] [, success(data, textStatus, jqXHR)] [, dataType] );
jquery将为您序列化它。