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次。