我有两个例子。请告诉我为什么我的变量help
在此示例中没有按预期工作。我检查它是否正在进入循环。
结果:undefined
function autopop(){
var help;
$.ajax({
type : "POST",
url : "/cgi-bin/my.pl",
data : "action=autopop",
dataType : "json",
success : function(data) {
for (var i = 0; i < data.length; i++) {
help = "test";
}
}
);
$("#id").append(help);
}
结果:test
function autopop() {
var help = "test";
$.ajax({
type : "POST",
url : "/cgi-bin/my.pl",
data : "action=autopop",
dataType : "json",
success : function(data) {
for (var i = 0; i < data.length; i++) {
help = "blub";
}
}
);
$("#id").append(help);
}
请告诉我为什么我无法从这个ajax / loop组合中访问我的var,以及如何改变这个事实。
答案 0 :(得分:3)
AJAX 异步 - 因此,在设置.append
之前,您的help
语句被点击了。在成功方法中加入append
:
success : function(data) {
for(var i = 0; i < data.length; i++){
help="test";
}
$("#id").append(help);
}
答案 1 :(得分:1)
我猜你根据你的评论想要实现的目标是......
success : function(data) {
$("#id").append(data);
}
或
success : function(data) {
help = data;
doCallback();
}
使用doCallback
方法。
function doCallback() {
alert(help);
}
答案 2 :(得分:0)
你没有得到预期的结果,因为你的ajax调用会激活并继续执行你的代码$("#id").append(help);
在成功编写的代码之前执行,设置帮助变量。