$('#create').click(function(){
var metaObj = {};
var dataObj = {};
var fields = [];
$('#tableform').find(".meta").each(function(){
metaObj[this.name] = this.value;
});
$('.datarow').each(function () {
$('td > input, select',this).each(function () {
dataObj[this.name] = this.value;
});
console.log(dataObj);
fields.push(dataObj);
});
console.log(JSON.stringify(metaObj));
console.log(JSON.stringify(fields));
});
我在表格中有一个表格。每行都有相同的输入字段。 datarow是每行的类名。我遍历每一行来获取值。
console.log(dataObj);
显示每一行输入。但是,字段数组只添加了最后一个对象' n'倍。 n =行数。
答案 0 :(得分:2)
您需要将var dataObj = {};
放在each()代码块中,以便在每个.datarow
迭代开始时它为空:
$('#create').click(function() {
var metaObj = {};
var fields = [];
$('#tableform').find(".meta").each(function(){
metaObj[this.name] = this.value;
});
$('.datarow').each(function () {
var dataObj = {}; // move declaration here
$('td > input, select',this).each(function () {
dataObj[this.name] = this.value;
});
console.log(dataObj);
fields.push(dataObj);
});
console.log(JSON.stringify(metaObj));
console.log(JSON.stringify(fields));
});