我只是想创建一个javascript对象。
const data = {};
// loop through each input found in form
$('#form_name').filter(':input').each(function() {
const $id = $(this).attr('id');
const $value = $(this).attr('value');
data[$id] = $value;
return data;
});
查看这个小提琴,告诉你我的意思...... https://jsfiddle.net/atg5m6ym/5230/
预期输出将是这样的:
{
"username": "johndoe",
"email": "johndoe@gmail.com",
...
}
这种方式目前不起作用......我怎样才能将它变成js对象,或者如果有人能提供更好的方法,那就太好了。感谢您的帮助!
答案 0 :(得分:3)
您不应该在每个循环中返回数据对象,而是在:
之后var setData = function(){
var data = {};
$('#form_name').filter(':input').each(function() {
const $id = $(this).attr('id');
const $value = $(this).attr('value');
data[$id] = $value;
});
return data;
}
var data = setObject();
另外,您不应该将对象定义为常量,因为您在
之后立即更改了它的值答案 1 :(得分:2)
非jQuery版本:
var formElements = document.getElementById('form_name').childNodes;
var obj = {};
for(element in formElements) {
if(formElements[element].nodeName === 'INPUT') {
obj[formElements[element].id] = formElements[element].value
}
};