我正在创建具有节id和字段数据的动态节,并且我正在获得具有节id的所有数据。使用。map()函数与节id和数据值创建JSON,面对一些问题,如JSON格式是不正确的,我想。
还请告知这是正确的方式来做动态部分?我要走了,对吧?
下面是我的HTML代码:
<section id="section-1" class="section">
<input id="input1" value="input1">
<input id="input2" value="input2">
</section>
<section id="section-2" class="section">
<input id="input3" value="input3">
<input id="input4" value="input4">
</section>
和Jquery代码
var section = $(".section").map(function()
{
var section_obj = {};
var section_id = $(this).attr("id");
var data = $(this).find(':input').map(function()
{
var obj = {};
obj['id'] = $(this).attr("id");
obj['value'] = $(this).val();
return obj;
}).get();
section_obj[section_id] = data;
return section_obj;
}).get();
结果
[{"section-1":[{"id":"input1","value":"input1"},{"id":"input2","value":"input2"}]},{"section-2":[{"id":"input3","value":"input3"},{"id":"input","value":"input4"}]}]
我想要的结果应该是下面只需要删除第一部分}与第二部分开始{像简单的只是删除},{
[{"section-1":[{"id":"input1","value":"input1"},{"id":"input2","value":"input2"}],"section-2":[{"id":"input3","value":"input3"},{"id":"input","value":"input4"}]}]
试试这个:
var mergedSections = {};
var section = $(".section").map(function() {
var section_id = $(this).attr("id");
var data = $(this).find(':input').map(function() {
var obj = {};
obj['id'] = $(this).attr("id");
obj['value'] = $(this).val();
return obj;
}).get();
mergedSections[section_id] = data;
});
console.log(mergedSections);
但是你可以用[]来包装它来达到你的结果:
console.log([mergedSections]);
工作演示:https://jsfiddle.net/310wLyz9/