我可以在控制台中看到对象的字段变量但无法访问它

时间:2015-01-06 17:24:33

标签: javascript jquery

我可以在控制台中看到对象的字段变量,但无法通过objectName.fieldVariableName

访问它
var ob = jQuery.get("file.txt");
console.log("This is the resulting object");
console.log(ob);
console.log("This is the responseText");
console.log(ob.responseText);

当我尝试访问响应文本时,将其显示为未定义。但是,当我打印整个对象时,我可以看到正确的响应文本。如何访问responseText字段变量?

This is the output for my code

2 个答案:

答案 0 :(得分:4)

由于jQuery.get是一种异步方法,您需要提供一个回调函数,一旦请求成功就会调用它:

var ob = jQuery.get("file.txt", function(responseText)
{
    console.log("This is a jqXHR object");
    console.log(ob);
    console.log("This is the responseText");
    console.log(responseText);
});

jQuery调用回调函数,并将响应数据作为第一个参数(上面代码中为responseText)。

您在控制台中看到responseText的原因可能是因为在您展开对象详细信息时,请求已成功并且reponseText字段已设置。

此外,请注意ob 不是结果对象,而是jqXHR对象。

答案 1 :(得分:1)

这是因为您需要使用回调函数来处理success请求的get事件。

$.get("file.txt", function(data) {
    console.log(data);
});

在控制台中执行它时,请求已完成并填充了对象。但是,在您的代码段中,请求在执行时尚未完成。

有关详细信息,请参阅jQuery.get