Javascript for 循环给出奇怪的结果
Javsacript for loop giving out weird results
我写了一个简单的 for 循环来根据 json 响应执行一些 DOM 操作。这是我的代码
onSuccess: function(a) {
var b = a.items.length;
for (i = 0; i < b; i++)
user_id = a.items[i].id;
$('#user_id').checked = true;
selectUserSettings(user_id);
}
},
在我使用的一个示例中,结果集 'a' 中有 14 个项目。 for 循环在添加断点时显示 i 的值在 0,1,2,2,3,2,3,4,2,3,4,5... 基本上它会重置并从 2 开始并继续最多 1 个额外的索引,然后再重新做一次...我在这里做错了什么?任何帮助将不胜感激。
很可能是因为这一行 for (i = 0; i < b; i++)
当 i
声明时没有 let
或 var
关键字,它在全局范围内。
将此更改为
for (let i = 0; i < b; i++)
此外,如果我的理解是正确的,您希望使用 user_id
变量来访问元素。如果是这样,则更改
user_id = a.items[i].id;
$('#user_id').checked = true;
到
let user_id = a.items[i].id;
$('#'+user_id).checked = true;
我写了一个简单的 for 循环来根据 json 响应执行一些 DOM 操作。这是我的代码
onSuccess: function(a) {
var b = a.items.length;
for (i = 0; i < b; i++)
user_id = a.items[i].id;
$('#user_id').checked = true;
selectUserSettings(user_id);
}
},
在我使用的一个示例中,结果集 'a' 中有 14 个项目。 for 循环在添加断点时显示 i 的值在 0,1,2,2,3,2,3,4,2,3,4,5... 基本上它会重置并从 2 开始并继续最多 1 个额外的索引,然后再重新做一次...我在这里做错了什么?任何帮助将不胜感激。
很可能是因为这一行 for (i = 0; i < b; i++)
当 i
声明时没有 let
或 var
关键字,它在全局范围内。
将此更改为
for (let i = 0; i < b; i++)
此外,如果我的理解是正确的,您希望使用 user_id
变量来访问元素。如果是这样,则更改
user_id = a.items[i].id;
$('#user_id').checked = true;
到
let user_id = a.items[i].id;
$('#'+user_id).checked = true;