Javascript 序列化对象数组

Javascript 序列化对象数组,javascript,jquery,Javascript,Jquery,我正在用对象填充一个数组nodeValue。看起来是这样的: nodevalues.push{id:this.id,left:left,right:right} 此行位于$.each迭代器中,该迭代器在一些li节点上进行迭代,并计算左值和右值 因此,我有一个数组,其中有几个看起来都一样的对象: 是否可以使用jQuery.post将此数组序列化为数据库存储的url字符串 调用$nodevalues.serialize将不返回任何内容,$.paramnodevalues将返回undefined=un

我正在用对象填充一个数组nodeValue。看起来是这样的:

nodevalues.push{id:this.id,left:left,right:right}

此行位于$.each迭代器中,该迭代器在一些li节点上进行迭代,并计算左值和右值

因此,我有一个数组,其中有几个看起来都一样的对象:

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

调用$nodevalues.serialize将不返回任何内容,$.paramnodevalues将返回undefined=undefined&undefined=undefined&undefined=undefined&undefined=undefined&undefined=undefined&undefined=undefined&undefined=undefined&undefined=undefined&undefined=undefined…

可能会执行您想要的操作

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));
我可以做你想做的事

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

您可以将数据作为第二个参数提供给jquery.post

jQuery.post( url [, data] [, success(data, textStatus, jqXHR)] [, dataType] );

jquery将为您序列化它

您可以将数据作为第二个参数提供给jquery.post

jQuery.post( url [, data] [, success(data, textStatus, jqXHR)] [, dataType] );

jquery将为您序列化它

您可以使用JSON库中的stringify函数。

您可以使用JSON库中的stringify函数。

永远不要使用$this.attr'id'。这是。每个都是DOM元素->这个。id@Didier我不确定我是否理解你的评论$jquery中的这个就是javascript中的[0]。您应该在jquery中始终使用$this.attr'id。@DidierG。我想你没有抓住我文章的重点。我的问题是如何序列化对象数组。您提到的代码工作正常。@ZacL。“我知道,这只是一个评论,不是对你问题的回答。”汤马斯克莱森。选中此项永不执行$this.attr'id'。这是。每个都是DOM元素->这个。id@Didier我不确定我是否理解你的评论$jquery中的这个就是javascript中的[0]。您应该在jquery中始终使用$this.attr'id。@DidierG。我想你没有抓住我文章的重点。我的问题是如何序列化对象数组。您提到的代码工作正常。@ZacL。“我知道,这只是一个评论,不是对你问题的回答。”汤马斯克莱森。检查这个好了,它没有!我用我试过的方法编辑了我的问题。太好了!你让我高兴极了!哦,它没有!我用我试过的方法编辑了我的问题。太好了!你让我高兴极了!你是说像这样。发布'ajax/changenode.php',nodevalue;结果:表单数据:未定义:未定义未定义:未定义未定义:未定义未定义:未定义未定义:未定义未定义:未定义未定义:未定义未定义:未定义未定义:未定义不执行作业!你是说像这样。发布'ajax/changenode.php',nodevalue;结果:表单数据:未定义:未定义未定义:未定义未定义:未定义未定义:未定义未定义:未定义未定义:未定义未定义:未定义未定义:未定义未定义:未定义不执行作业!