我正在尝试遍历所有highchart
个系列,同时对服务器执行ajax。我们来看看下面的代码
var url = './sheet';
for(var k = 0; k < chart.series.length; k++) {
console.log(chart.series[k]);
$.getJSON(url).done(function (data){
if (data.length) {
console.log(chart.series[k]);
}
});
}
我不确定上面的代码有什么问题。如您所见,k
完成后,对jQuery.getJSON
的引用将丢失。感谢您能否帮助我。谢谢
答案 0 :(得分:5)
您的代码是异步的,将其包装在一个闭包中,以便它在循环中保留它的值。
var url = './sheet';
for(var k = 0; k < chart.series.length; k++) {
(function(k){
console.log(chart.series[k]);
$.getJSON(url).done(function (data){
if (data.length) {
console.log(chart.series[k]);
}
});
})(k);
}
正如Jason在评论中引用learn how closures work。