我正在尝试使用每个循环遍历输入字段,将其他表单数据添加到数组,然后将该输入值添加到数组中已有的表单数据。
它似乎基本上正常工作,但每次我设置输入时,它都会在数组中具有该名称的所有条目中设置该值。关于我的逻辑走向何方的任何想法?
$(this).next('tr').children('td').each(function () {
input = $(this).children('input');
units[i] = unit;
units[i]['barcode'] = input.val();
i++;
});
输出对象: 对象{0:对象,1:对象} 0:对象 条形码:“789” 数量:“3” 大小:15 状态:“已收到”
1:对象 条形码:“789” 数量:“3” 大小:15 状态:“已收到”
input.val()在每个循环的每次迭代中都是不同的,它只是将最后一个值分配给所有条形码条目。
答案 0 :(得分:0)
您可以将extend()与空对象一起使用来克隆单位对象,以便每个数组都不会引用同一个实例:
$(this).next('tr').children('td').each(function () {
input = $(this).children('input');
units[i] = $.extend({}, unit);
units[i]['barcode'] = input.val();
i++;
});
现在这应该可以正常工作,每个对象都是唯一的,包括条形码。