Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery每个DOM元素-推入数组错误_Javascript_Jquery - Fatal编程技术网

Javascript Jquery每个DOM元素-推入数组错误

Javascript Jquery每个DOM元素-推入数组错误,javascript,jquery,Javascript,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=

我尝试在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);
推送功能总是推送最后一个子项,而不是另一个子项,但在我的控制台上登录时具有良好的值

日志1:{name:“a”,值:数组(1)}

日志2:{name:“b”,值:数组(1)}

日志3:[

{名称:“b”,值:数组(1)}

{名称:“b”,值:数组(1)}

]

为什么?

为什么?

因为在每次迭代中,您都会覆盖相同的对象
nouvelle\u entre

您需要在每次迭代中定义对象
nouvelle_u entre
,而不仅仅是第一次,否则变量将始终包含上次迭代的信息,例如:

$('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);

简而言之,您每次都将完全相同的对象推入数组,并在循环的每次迭代中覆盖它的值