【发布时间】:2012-10-08 13:46:21
【问题描述】:
我有一个 URL 数组,以及我从外部提取的一组数据。 URL 和数据完美地一一对应。我尝试这样做:
for (var i = 0; i < children.length; i++) {
urls.push(children[i].data.url);
}
for (var i = 0; i < children.length; i++) {
$.ajax({
url: DATA_SOURCE,
dataType: "jsonp",
success: function (data2) {
console.log(urls[0]);
console.log(urls[i]);
}
});
}
第一个日志总是打印urls 数组的第一个元素。我可以将数字更改为任何其他有效索引并且它可以工作。然而,second 日志总是打印 undefined。我最初是从第二个循环中获取 url,但我把它拿出来以防万一它被证明是一个异步错误或什么的。 urls 被初始化为 Array,而不是 Object。将第二个日志从成功函数中取出(并进入 for 循环的主要范围)使其按预期执行。我很乐意将它归结为 ajax 请求以某种方式搞砸了它,但是为什么第一个日志会按预期执行?
有什么想法吗?
【问题讨论】:
-
为什么不能直接将 children[i].data.url 放入 ajax 而不是使用 urls 作为另一个数组
标签: javascript jquery ajax arrays