我有一个JSON提要,它正在拉入每个语句。 我想做的是 for 循环 var i
我希望在 each 语句中使用这个值。 在下面的示例中,for 循环将运行 0、1、2。 如果是i == 1
,那么我想运行 JSON 提要,但仅适用于i = 1
值。 目前,当 if 语句被触发时,JSON 每个语句都贯穿所有项目 b/c,它i
值从 0 开始。 因此,我现有的console.log
返回 0、1、2。 我希望它只返回 1。 感谢您的任何帮助。
编辑
我的重点是使每个语句中的i
$.each(data.DATA, function(i, item) {
使用 for 循环语句中i
等于的数字。 因此,如果 JSON 文件中有 3 个项目,则只会运行项目 1。
for (var i = 0; i < 2; i++) {
if (i == 1) {
$.getJSON("/json/v2_ilt_map.cfm?feedtype=ILTMAP_SCHEDULED&customerID=1&TrainingObjectParent=3", {}, function(data, i) {
$.each(data.DATA, function(i, item) {
console.log(i);
}
}):
}
}
您需要引入一个额外的函数作用域才能完成这项工作。
function checkOnly(i) {
return function(data) {
$.each(data.DATA, function(ii, item) {
if (ii == i) console.log(ii);
});
};
}
for (var i = 0; i < 2; i++) {
if (i == 1) {
$.getJSON("/json/v2_ilt_map.cfm?feedtype=ILTMAP_SCHEDULED&customerID=1&TrainingObjectParent=3", {}, checkOnly(i));
}
}
在这里,传递给 $.getJSON
的回调是在另一个函数中创建的。通过这样做,在.each()
循环中检查的变量"i"是for
循环中"i"的副本。 因此,处理程序函数具有要比较的固定值。
for (var i = 0; i < 2; i++) {
var x = i;
if (i == 1) {
$.getJSON("/json/v2_ilt_map.cfm?feedtype=ILTMAP_SCHEDULED&customerID=1&TrainingObjectParent=3", {}, function(data, i) {
$.each(data.DATA, function(n, item) {
if(n == x){
console.log(n);
break;// you can use break if you want
}
}
}):
break; // you can use break if you want
}
}