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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.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
Jquery 奇怪的数据行为、未定义的变量等_Jquery_Undefined - Fatal编程技术网

Jquery 奇怪的数据行为、未定义的变量等

Jquery 奇怪的数据行为、未定义的变量等,jquery,undefined,Jquery,Undefined,我的脚本工作起来非常奇怪,我得到了所有的值,但是当我想通过警告来检查它们时——第一个给出了未定义的值,而另一个是正确的。但如果我不发出任何警告,所有变量都显示为未定义。我的代码: var arr = new Array(); function fetchData(){ $.get("post.php", function(data){ arr.img = $(data).find("img").attr("src");

我的脚本工作起来非常奇怪,我得到了所有的值,但是当我想通过警告来检查它们时——第一个给出了未定义的值,而另一个是正确的。但如果我不发出任何警告,所有变量都显示为未定义。我的代码:

var arr = new Array();

function fetchData(){
    $.get("post.php", 
        function(data){ 
            arr.img = $(data).find("img").attr("src");
            arr.link = $(data).find("td:last a").attr("href");
            arr.title = $(data).find("td:last a:first b u").text();
            arr.post = $(data).find("td:last span").text();
        }
    );

}

// On page load fetch 4 times and make bar
for (i = 0; i < 4; i++){
    var str;
    fetchData();
    alert(arr.img);
    alert(arr.link);
    alert(arr.title);
    alert(arr.post);

    str = "<td><tr><td><a href='" + arr.link + "'><img src='" + arr.img + "' width='100' height='100' /></a></td></tr><tr><td><strong>" + arr.title + "</strong> - " + arr.post + "</td></tr></td>";

    $("div").append(str);
}
for循环在收到响应之前运行

最后15次有效的原因是,在您解除第一次警报时,已收到响应

将警报放在回调中,您就会明白我的意思

var arr = new Array();

function fetchData(){
    $.get("post.php", 
        function(data){ 
            arr.img = $(data).find("img").attr("src");
            arr.link = $(data).find("td:last a").attr("href");
            arr.title = $(data).find("td:last a:first b u").text();
            arr.post = $(data).find("td:last span").text();

            var str;
            alert(arr.img);
            alert(arr.link);
            alert(arr.title);
            alert(arr.post);

            str = "<td><tr><td><a href='" + arr.link + "'><img src='" + arr.img + "' width='100' height='100' /></a></td></tr><tr><td><strong>" + arr.title + "</strong> - " + arr.post + "</td></tr></td>";

            $("div").append(str);
        }
    );

}

// On page load fetch 4 times and make bar
for (i = 0; i < 4; i++){
            fetchData();
}

你在说什么台词?什么是未定义的警报?我编辑了我的帖子。此脚本发出16次警报,最后15次所有内容都是正确的,但不是第一次,第一次,在本例中,arr.img=undefined。因此,在这种情况下我可以做什么?更新了我的答案。将请求的相关代码放在回调中。顺便问一下,您是否有理由连续四次发出看似相同的请求?只是好奇。现在它正常工作了,谢谢!编辑:我请求的php脚本生成随机数据,所以我做了4次。