由于某种原因,当尝试在函数外部使用 get 函数内的 newdata 时,它会丢失。警报显示 0,但是当我将警报放入 get 函数时,它显示 80(这应该是。)有什么想法吗??
var newdata = 0;
//Get latest stat from file
$.get( "http://localhost/?stat=size", function( data ) {
//Strip any letters from result (if any)
newdata = data.replace(/\D/g,'');
//alert( "Load was performed."+newdata );
});
alert( "Load was performed."+newdata );
谢谢
最佳答案
你的变量并没有丢失,jQuery get 是一个异步请求。这意味着当您发出警报时,您尚未取回数据,因此它仍会返回 0。
您可以将代码更改为同步运行,这将解决您的问题,但是您应该小心,因为它会阻止更多代码执行,直到您得到响应。
$.ajax({
url: 'http://localhost/?stat=size',
success: function(data) {
newdata = data.replace(/\D/g,'');
},
async: false
});
但是,我建议只运行您在获得成功时需要执行的操作,这意味着它只会在您检索数据后运行,并且不会阻止任何其他执行。
var newdata = 0;
//Get latest stat from file
$.get( "http://localhost/?stat=size", function( data ) {
//Strip any letters from result (if any)
newdata = data.replace(/\D/g,'');
alert( "Load was performed."+newdata );
});
关于javascript - 在 jquery get 之外丢失 var,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21675745/