Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript变量的作用域_Javascript - Fatal编程技术网

Javascript变量的作用域

Javascript变量的作用域,javascript,Javascript,可能重复: 如何将数据变量输出到第二条alert语句 $.post("index.ajax.php", { lookup:value }, function(data) { alert(data) test = data; }) alert(test) 或者有可能做这样的事情吗 function confirm_search(input) { $.post("index

可能重复:

如何将数据变量输出到第二条alert语句

        $.post("index.ajax.php", { lookup:value }, 
        function(data) {
            alert(data)
            test = data;
        })
        alert(test)
或者有可能做这样的事情吗

function confirm_search(input) {
    $.post("index.ajax.php", { lookup:input }, 
    function(data) {
        $("#temp").val(data);
    })
}

var test = confirm_search(value);
alert(test); 
你不能

AJAX是异步的。直到一段时间后,才能获得响应

调用
jQuery.post
将开始AJAX请求,并返回处理请求的jqXHR对象。脚本将继续执行(
alert(test)
下一步将启动),然后在AJAX请求完成(即收到HTTP响应)后的一段时间内,回调:

function(data) {
    alert(data)
    test = data;
}
将被执行。

您不能

AJAX是异步的。直到一段时间后,才能获得响应

调用
jQuery.post
将开始AJAX请求,并返回处理请求的jqXHR对象。脚本将继续执行(
alert(test)
下一步将启动),然后在AJAX请求完成(即收到HTTP响应)后的一段时间内,回调:

function(data) {
    alert(data)
    test = data;
}
将执行。请尝试以下方法:

var test;
$.post("index.ajax.php", { lookup:value }, 
    function(data) {
       alert(data)
       test = data;
})

function alertTest(){
  if(test != undefined) {   
    alert(test);
    clearInterval(t);
  }
}  

var t = setInterval(alertTest, 1000);
当ajax请求完成并分配测试时,您将获得测试值

var test;
$.post("index.ajax.php", { lookup:value }, 
    function(data) {
       alert(data)
       test = data;
})

function alertTest(){
  if(test != undefined) {   
    alert(test);
    clearInterval(t);
  }
}  

var t = setInterval(alertTest, 1000);

当ajax请求完成并分配测试时,您将获得测试值。

如果您严格要求Scenero,请在全局范围内定义测试变量,这样您就可以在代码中的任何地方使用它。

如果您严格要求Scenero,请在全局范围内定义测试变量,这样您就可以在代码中的任何地方使用它