当我运行以下代码时,它仅记录一个循环;但是,当我删除内部循环时,它会按预期运行所有5次。我在俯视什么?
for (var i = 0; i < 5; i++) {
var fieldset = document.getElementsByTagName("fieldset")[i];
console.log("fieldset", i);
var params = [];
for (var i = 0; i < 5; i++) {
params.push(fieldset.getElementsByTagName("input")[i].value);
}
console.log(params);
}Run Code Online (Sandbox Code Playgroud)
您i在两个循环中都使用了相同的变量。
包括并扩展作为对此答案的评论发布的信息:
使用相同的变量只是一个问题,因为您使用了关键字var。如果您使用关键字let而不是var,就不会有问题。
这是因为var是功能范围的,let而是块范围的。