我尝试在dom上使用每个()函数,以动态添加字段。但是我对此代码有一个问题:
var nouvelle_entree=new Object();
$('div[name="declaration-ligne-entree"]').each(function () {
nouvelle_entree.name=$(this).children('input[name="system-input-name"]').val();
nouvelle_entree.values=$(this).children('input[name="system-input-valeur"]').val().split(",");
console.log(nouvelle_entree);
mockSystem.input.push(nouvelle_entree);
});
console.log(mockSystem.input);
推动功能总是按下最后一个孩子,而不是另一个孩子,而是在我的控制台上登录具有良好的值。
log 1:{name:" a",values:array(1)}
log 2:{name:" b",values:array(1)}
日志3:[
{name:" b",values:array(1)}
{name:" b",values:array(1)}
]
为什么?
为什么?
因为在每次迭代中,您都在覆盖相同的对象nouvelle_entree
。
您需要在每次迭代中不仅第一次定义对象nouvelle_entree
,否则该变量将始终包含最后一次迭代的信息,例如:
$('div[name="declaration-ligne-entree"]').each(function() {
var nouvelle_entree = {};
nouvelle_entree.name = $(this).children('input[name="system-input-name"]').val();
nouvelle_entree.values = $(this).children('input[name="system-input-valeur"]').val().split(",");
mockSystem.input.push(nouvelle_entree);
});
console.log(mockSystem.input);