2010-08-09 117 views
0
var url_string = '/index.php/dvs/get_dvs/' + id + '/'; 
     $.ll = {}; 
     $.ll.dvs_data = {}; 
     $.post(url_string,{}, 
     function (data) 
     { 
       $.each(data.dvs, function(k,v) { 
       $.each(v, function(dvs_name, dvs_value) { 

        $.ll.dvs_data[dvs_name] = dvs_value; 

       }); 
      }); 

     }, "json"); 

     var test = $.ll.dvs_data; 
     console.log(test['username']); 
     console.log(test.username); 
     console.log(test); 

以上是,数据正被接收为执行console.log(测试)的一些其他的代码部分显示萤火虫(火狐)的对象但是我无法访问test.username或测试['用户名]对象,他们只是返回undefined通过jQuery访问对象

+0

您可以检查萤火虫,给我们的$ .ll.dvs_data – Nealv 2010-08-09 09:49:37

+0

你认真创建自己全额返还命名空间,像'jQuery'构造器一样扩展是不好的业力。 – jAndy 2010-08-09 09:53:51

回答

2

这是一个常见的错误,当涉及到AJAX。后期调用是异步的,这意味着即使在收到服务器的响应之前,它仍将继续运行代码。

依赖于从服务器的响应的任何代码需要到达的回调函数内:

$.post(url_string,{}, 
    function (data) 
    { 
     $.each(data.dvs, function(k,v) { 
      $.each(v, function(dvs_name, dvs_value) { 

       $.ll.dvs_data[dvs_name] = dvs_value; 

      }); 
     }); 

     // Move your code up here 
     var test = $.ll.dvs_data; 
     console.log(test['username']); 
     console.log(test.username); 
     console.log(test); 

    }, "json");