我试图遍历页面中的所有输入,并构建一个JSON以通过发布请求发送到后端:
function getBody() {
var blocks = $('.list-group-item').map(function(idx, elem) {
var inputs = $(elem).find('.block-input').map(function (idi, input) {
//Probably this part needs to change
return {
[$(input).attr('name')]: $(input).val()
};
}).get();
return {
id: $(elem).data('id'),
name: $(elem).data('name'),
inputs,
};
}).get();
var products_json = JSON.stringify(blocks,null,'\t');
console.log(products_json)
};
它有效,这是我的结果:
[
{
"id": 13,
"name": "About us",
"inputs": [
{
"title": "How we started"
},
{
"paragraph": "We started 5 years ago in a ..."
}
]
}
]
我想为所有输入取回一个对象,而不是为每个输入取回一个对象,如何使用map()将键值对返回给对象?我希望结果看起来像这样:
[
{
"id": 13,
"name": "About us",
"inputs": {
"title": "How we started"
"paragraph": "We started 5 years ago in a ..."
}
}
]
不要map
用于创建inputs
对象。使用将键/值元素添加到对象的循环。
function getBody() {
var blocks = $('.list-group-item').map(function(idx, elem) {
var inputs = {};
$(elem).find('.block-input').each(function(idi, input) {
inputs[$(input).attr('name')] = $(input).val();
});
return {
id: $(elem).data('id'),
name: $(elem).data('name'),
inputs,
};
}).get();
var products_json = JSON.stringify(blocks, null, '\t');
console.log(products_json)
};
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句