Javascript 方法返回未定义的
我在for循环中有一段JS代码:Javascript 方法返回未定义的,javascript,jquery,global-variables,Javascript,Jquery,Global Variables,我在for循环中有一段JS代码: window.gamesParse = { days: days, dates: dates, times: times, series: series, homes: homes, aways: aways, channels: channels } var image = $.get("assets/images/" + gamesParse.aways[i] + ".png"); if (image
window.gamesParse = {
days: days,
dates: dates,
times: times,
series: series,
homes: homes,
aways: aways,
channels: channels
}
var image = $.get("assets/images/" + gamesParse.aways[i] + ".png");
if (image.status !== 404) {
console.dir(image);
} else {
console.dir(image);
}
现在,它返回具有status
属性的正确对象。但是如果我将image
更改为image.status
(或任何其他属性或方法),它将返回未定义。这正常吗?如何从那里访问
status
属性?image
未定义,因为它不在get操作中,请尝试将其放入回调函数中。像这样:
$.get("assets/images/" + gamesParse.aways[i] + ".png", function(response) {
if (response.status !== 404) {
// do stuff here
} else {
// or here
}
});
检查这是正常的,因为
$.get
是异步的,这在当前代码中意味着它加载数据。但在下一行中,您会询问图像的状态,实际上图像仍在加载中。您需要做的是等待图像加载,然后检查代码。比如:
$.get("assets/images/" + gamesParse.aways[i] + ".png", function(image) {
// here image can have status
});
没关系!那么问题是什么?你想知道答案吗?它是未定义的,因为status属性在其中不可用。@Jai我以为未定义的情况不是预料中的。问题编辑。新手错误。Javascript是异步的。您必须等待
get
函数完成并返回结果,然后才能测试image.status
。使用回调函数$.get(“png”,函数(图像){console.log(图像);})