访问范围外的javascript变量

时间:2011-08-29 21:04:13

标签: javascript jquery

我有

jQuery(document).ready(function() 
{

    jQuery.get('data/php/traces_pos.csv', function(data) { var routes = jQuery.csv()(data); });

//if I use here 

for (i=0;i<=routes.length;i++){}

// javascript says route undefined

}

如何访问作为数组数组的路径

4 个答案:

答案 0 :(得分:2)

定义回调之外的路线:

var routes;
jQuery.get('data/php/traces_pos.csv', function(data) { routes = jQuery.csv()(data); });

答案 1 :(得分:1)

您必须在任一函数之外定义路径,如下所示:

var routes;

jQuery(document).ready(function() 
{

    jQuery.get('data/php/traces_pos.csv', function(data) {  routes = jQuery.csv()(data); });

//if I use here 

for (i=0;i<=routes.length;i++){}

//  routes is no longer undefined

}

答案 2 :(得分:1)

您需要等到路线设定完毕。我正在使用一个函数并传入routes作为参数:

jQuery(document).ready(function() 
{

    jQuery.get('data/php/traces_pos.csv', function(data) {  
        var routes = jQuery.csv()(data); 
        performRoutes(routes);
    });
});

//if I use here 
function performRoutes(routes) {
    for (i=0;i<=routes.length;i++){
        // routes
    }
}

答案 3 :(得分:0)

routes调用之外移动jQuery.get声明会使显示到你的for循环中 - 但是要小心你的for循环在调用回调之前运行,因此routes尚未设置。

你做的任何事情取决于异步获取的结果必须在回调函数中的或在回调函数中调用的代码中的 。在后一种情况下,您可以在函数调用中将路由作为参数传递 - 不需要扩展变量的范围。