【发布时间】:2011-02-02 00:43:12
【问题描述】:
您好,
我正在使用这样定义的 JavaScript 对象:
var ytVideoData = new Object();
然后我在 jQuery .ajax() 中为其赋值:
$.ajax({
type: "GET",
url: "xmlproxy.php?url="+ytId+"&mode=native",
success: function(data) {
ytVideoData.thumbnail = $(data).find("media\\:thumbnail[yt\\:name='default']").attr("url"); // default thumbnail image
}
});
在另一个函数中,我想访问刚刚设置的缩略图属性。但是,当我这样做时:
function addPlaylistItem(tumblrUser, videoData) {
console.log(videoData.thumbnail);
}
我在控制台中得到的只是“未定义”。当我这样做时:
console.log(videoData);
我将整个对象记录到控制台,并且可以看到对象内部正确设置的缩略图属性,如下所示:
http://mp3.deceast.com/js-objectissue.jpg
在尝试了几种不同的方法后,我似乎无法让它发挥作用。如何访问此对象属性?
【问题讨论】:
-
你知道异步回调是如何工作的吗?
-
您能否展示包含 ajax 调用以及
addPlaylistItem()调用的代码?如果您在$.ajax()之后调用addPlaylistItem(),而不是在success回调中,则此将不起作用,因为请求是异步的。这个问题每天在 SO 上至少被问一次。 -
您确定 ajax 调用中的成功函数在您的其他函数之前执行吗?
-
另一件事:不需要
new Object()。写var ytVideoData = {};
标签: javascript