Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 方法返回未定义的_Javascript_Jquery_Global Variables - Fatal编程技术网

Javascript 方法返回未定义的

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

我在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.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(图像);})