javascript - 在 jquery get 之外丢失 var

标签 javascript jquery jquery-ui

由于某种原因,当尝试在函数外部使用 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/

相关文章:

Jquery数据表:set the class on the filter input field

javascript - 函数 'beforeShowDay' 和 'onSelect' 在以下 Datepicker 小部件实现中实际上做了什么?

jquery - 如何将图像添加到此 JQueryUI 自动完成插件的结果中?

javascript - JQuery ui Slider 不能处理重复项

javascript - ReactJS onClick setState 到不同的元素

javascript - 数组的复杂问题

javascript - 一个页面中有两个同名的js文件

asp.net - Javascript 中 window.sessionStorage 的替代品?

javascript - 如果在 DOM 中的任何地方单击,则隐藏 div

javascript - jQuery UI - 调用突出显示/错误