javascript - 序列化对象数组

标签 javascript jquery

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

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

此行位于 $.each() 迭代器内,该迭代器迭代一些 li 节点并计算 left正确的值。

所以我有一个包含几个看起来都一样的对象的数组:screen dump chrome console

是否可以使用 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);

看来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));

http://jsfiddle.net/4NELt/

关于javascript - 序列化对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8324976/

相关文章:

javascript - ng-show/ng-hide 破坏 CSS 动画

javascript - 循环遍历项目,将它们添加到对象中并执行 console.log

直到将鼠标悬停在 ie7 上才显示 jquery 对话框按钮

javascript - ajax获取json数据

javascript - 在 javascript 中声明具有特定长度的数组有什么好处?

javascript - 数组仅显示数组中的最后一个数据,而不显示整个数据

javascript - ExtJS 如何制作包装其元素的工具栏?

javascript - 我可以使用 jQuery 访问不存在或无效的 css 属性吗?

javascript - 隐藏包含特定字符串的div

jquery - 设置 jQuery 超时间隔的最佳方法是什么?