我可能遗漏了一些非常明显的东西,但我并没有解决这个问题。
我只是想在从 json 提要中获取值后设置变量的值。
我正在使用 jquery 来获取 jsonp 提要,然后将值存储在我以后可以使用的变量中,但它不起作用,并且该值没有被存储。如果我 console.log 它返回它的值。
jQuery(document).ready(function($){
serverip = "<?php echo $_SERVER['SERVER_ADDR']; ?>";
stream_domain = "";
$.ajax({url: 'http://load.cache.is/inspired.php?ip=' + serverip, dataType:'jsonp',
success: function(data){
$.each(data, function(key, val) {
if (key == serverip){
stream_domain = val;
console.log("val: " + val);
}
});
}
});
console.log(stream_domain);
});
这是 jsfiddle.net 上的相同代码
最佳答案
您正在发出异步请求。因此,附加 HTML 的代码会在成功分配变量之前执行。
ajax 请求之后的代码在发出请求后立即执行。 因此,如果您需要响应数据,那么您应该移动您的追加代码以从类似于此的成功方法执行:
if (key == serverip){
stream_domain = val;
console.log("val: " + val);
$("<span>" + val + "</span>").appendTo(".json");
$("<span>" + stream_domain + "</span>").appendTo(".variable");
}
DEMO
关于javascript - 无法为变量设置新值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13088107/