【问题标题】:how can I read returned object from jQuery $.get method如何从 jQuery $.get 方法读取返回的对象
【发布时间】:2011-05-14 22:05:37
【问题描述】:

我想知道如何通过 jQuery 的 $.get() 方法从返回的对象中提取数据。即:

function dynamicData(file){
    var wantedData;
    var getObj = $.get(file);
    wantedData = getObj.complete(function(data){return data;});
    return wantedData;
}
$(window).load(function(){
     var newData = dynamicData('somefile');
     alert(newData);
});

我不想在获得新数据后立即将数据粘贴到某个 DOM。

我收到一个对象警报,但如何获取其中的数据?我不知道此时对象结构如何,因为 newData 是一个对象,但 newData[0] 为空。这是偶然的某种带有键:值对的映射对象吗?还是我们不允许这样做?

【问题讨论】:

  • 使用 webkit 的 devtools 或 firebug 或其他任何东西来检查对象的结构! :D
  • 使用 Javascript 控制台而不是警报使用 console.log(newdata) 以便您可以检查其结构。

标签: javascript jquery arrays object


【解决方案1】:

您不能从 Ajax 调用返回。它是异步的。

对成功回调中的数据做任何你想做的事情。

参见the manual for get,其中有示例。

【讨论】:

  • 我来这里之前就去过那里,但我之所以来这里是因为我不太了解那里。我对ajax的根源一无所知。尤其是那些 XMLHTTPRequest 和所有那些 ajax 术语 ;)
【解决方案2】:

由于 $.get() 是异步的,因此您在 get 返回任何数据之前调用警报。

更好的方法是:

function dynamicData(file,callback){
  $.get(file,function(data){
    callback(data);
  });
}

$(window).load(function(){
  dynamicData('somefile', alert);
});

它会在可用时提醒(数据)。

【讨论】:

  • 谢谢。这正是我所需要的。
【解决方案3】:

$.get 需要一个回调函数,它会在加载完成后立即接收数据。它不会直接将数据返回给调用函数!

更多信息请参考jQuery.get documentation

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多