我想将data.ip
值存储在更新变量中。alert( "Your ip: " + data.ip)
显示正确的IP地址值,但alert(ipdata)
显示未定义
$(document).ready(function () {
var ipdata;
$.getJSON("http://jsonip.appspot.com?callback=?",
function(data){
ipdata=data.ip;
alert( "Your ip: " + data.ip);
});
alert(ipdata);
});
});
最佳答案
由于无法在ajax调用的回调方法中分配ipdata=data.ip;
,因此无法正常工作。 Ajax调用本质上是异步的,这意味着一旦将请求发送到服务器,alert(ipdata);
将在执行ajax callbacl函数之前得到执行。
因此,您要使用ipdata
进行的所有处理都必须在回调函数中完成
$(document).ready(function () {
var ipdata;
$.getJSON("http://jsonip.appspot.com?callback=?",
function(data){
ipdata=data.ip;
alert( "Your ip: " + data.ip);
alert(ipdata);
});
});
});
关于javascript - 无法将函数值存储在变量中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16263049/