Javascript Jquery每个DOM元素-推入数组错误
我尝试在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=
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);
简而言之,您每次都将完全相同的对象推入数组,并在循环的每次迭代中覆盖它的值