序列化对象数组
我正在用对象填充数组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
...
jQuery.param()可能会做你想要
var dataString = jQuery.param(nodevalues);
什么似乎帕拉姆仅适用于对象,而不是数组。
如果你换你的数组中的一个对象,它工作正常:
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));
可以作为第二个参数提供的数据jquery.post()
jQuery.post(url [, data] [, success(data, textStatus, jqXHR)] [, dataType]);
的jQuery会为你序列化它。
你的意思是这样的? '$。员额('AJAX/changenode。PHP”,nodevalues);' 结果: 表格数据: 未定义:未定义 未定义:未定义 未定义:未定义 未定义:未定义 未定义:未定义 未定义:未定义 未定义:未定义 未定义:未定义 未定义: undefined undefined:undefined 不做这项工作! – netiul
您可以使用JSON库中的stringify函数。
永远不要做$(this).attr('id')'。 “this”是.each()是DOM元素 - >'this.id' –
@Didier G我不知道我理解你的评论。 $(this)在jquery中是javascript中的[0]。你应该总是在jQuery中使用$(this).attr('id')。 –
@DidierG。我想你错过了我的帖子。我的问题是如何序列化一个对象数组。你提到的代码就像它应该那样工作。 – netiul