DOM元素上的每个jQuery-按阵列错误



我尝试在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);

最新更新