Jquery - 为什么我不能在 $.ajax 中访问/设置我的 var
Jquery - why can't I access/set my var in $.ajax
我有两个例子。请告诉我为什么我的变量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 以及如何改变这一事实。
AJAX 是异步的 - 因此,您的 .append
语句在设置help
之前被命中。在成功方法中包含您的append
:
success : function(data) {
for(var i = 0; i < data.length; i++){
help="test";
}
$("#id").append(help);
}
我猜根据您的评论,您想要实现的是这个......
success : function(data) {
$("#id").append(data);
}
或
success : function(data) {
help = data;
doCallback();
}
用doCallback
方法。
function doCallback() {
alert(help);
}
你
没有得到预期的结果,因为你的 ajax 调用触发,执行继续,你的代码$("#id").append(help);
在成功编写设置帮助变量的代码之前执行。
相关文章:
- 如何提供在javascript中编写对对象的重复访问以设置元素样式的简写
- CORS:否'访问控制允许来源'header-但是php设置头文件
- 我如何设置HTTP头“;访问控制允许起源”;用于来自thttpd web服务器的HTTP响应
- 可以't访问元素属性(如果已明确设置)
- 在 js sdk 中手动设置访问令牌
- 如何将链接状态设置为在用户访问另一个页面之前保持
- 即使在服务器将访问控制允许原点设置为“*”之后,也会收到javascript错误
- 为什么我得到“;访问控制允许起源”;当已经设置了头时,通过AJAX下载文件
- 如何使用java脚本将iframe的src设置为当前访问的站点
- 将所有访问过的网站颜色重置为所有最新浏览器和所有doctype(xhtml,html,html5)的默认颜色css设置
- 可访问性:为什么 Jquery 菜单明确将菜单项 tabindex 设置为 -1
- 否'访问控制允许来源'当跨域设置为true时,请求的资源错误中存在标头
- 如何访问Angular JS模板指令中设置的值,如“ng class?”
- i18n:在JavaScript中访问区域设置解析逻辑
- PhantomJs:我可以从具有动态设置内容的页面访问相对资产吗
- Jquery - 为什么我不能在 $.ajax 中访问/设置我的 var
- EXTJS访问设置
- 通过浏览器访问设置菜单
- Console.log提供正确的输出,但在访问设置值时,它提供错误的输出
- 为什么我无法访问设置