【发布时间】:2012-12-22 19:53:06
【问题描述】:
我在更新与回调函数不同范围的变量时遇到问题,回调函数本身是 jQuery getJSON 调用中的参数。有人能告诉我如何从下面的回调函数中将元素推送到 chg_percent 变量上吗?谢谢!
$(document).ready(function() {
chg_percent = []; // array of all percent changes
var url = 'http://finance.yahoo.com/webservice/v1/symbols/allcurrencies/quote?format=json&view=basic&callback?';
$.getJSON(url, null, function(data) {
for (i = 0; i < data.list.resources.length; i++) {
chg_percent.push(data.list.resources[i].resource.fields.chg_percent);
}
});
});
【问题讨论】:
-
在答案开始下雨之前,代码的 sn-p 确实有效,
chg_percent没有范围问题。你能再澄清一下范围问题吗? -
运行时查看控制台。我预计问题实际上是[同源策略]{en.wikipedia.org/wiki/Same_origin_policy}。正如@Alexander 所说,没有范围问题。
-
据我所知,存在范围问题。即使我这样做: chg_percent.push(3);然后在 .getJSON 调用 go alert(chg_percent) 之后,它还没有被推送到它上面。并且这里没有 same_origin 问题。这是 jsonp,它可以毫无问题地获取数据。
-
我明白了,你可以绕过 CORS。我离开这里。祝你好运
标签: javascript jquery callback scope