Javascript 返回数组中的所有对象
我遗漏了一些非常明显的东西,请原谅我的无知:( 我有一组5个复选框,希望根据选中的复选框打印步骤。我需要此复选框以获得更大的输出,因此我将选择存储在它自己的变量中,如下所示:Javascript 返回数组中的所有对象,javascript,jquery,arrays,Javascript,Jquery,Arrays,我遗漏了一些非常明显的东西,请原谅我的无知:( 我有一组5个复选框,希望根据选中的复选框打印步骤。我需要此复选框以获得更大的输出,因此我将选择存储在它自己的变量中,如下所示: $checkBox.find('input:checked').each(function() { $rec = $(this).val() + "\n"; console.log($rec); }); 当我选中所有5个复选框并签入控制台时,一切都会正常返回:
$checkBox.find('input:checked').each(function() {
$rec = $(this).val() + "\n";
console.log($rec);
});
当我选中所有5个复选框并签入控制台时,一切都会正常返回:
但是,我想使用$rec中存储的输出在以后使用,因此我这样做是为了查看它的外观:
$checkBox.find('input:checked').each(function() {
$rec = $(this).val() + "\n";
console.log($rec);
});
// call rec into text input
$textOutput.val($textOutput.val() + $rec + "\n");
console.log($rec);
但由于某些原因,再次调用$rec时只返回“执行步骤5”
既然我已经在$rec中存储了5个复选框的输出,为什么我不能再次访问所有复选框而不仅仅是最后一个对象
但由于某些原因,再次调用$rec时只返回“执行步骤5”
每次都将值分配给
$rec
,因此在每次迭代中console.log()
时,您将获得当前值。但是在每次迭代完成后console.log()
时,您只会获得分配给变量的最后一个值。这是因为当您分配变量时,您会“覆盖”现有值(从技术上讲,您将变量指向不同的值),无论哪种方式,对上一个值的任何引用都将丢失。尝试将$rec设置为数组[]
把你的价值观融入其中,比如
$rec.push($(this).val() + "\n");
这很有帮助!谢谢!在函数顶部声明$rec为空数组。谢谢您的解释!很高兴知道为什么会发生这种情况。