我有这个用于访问JSON的javascript代码。有一个我声明为全局的变量v1,但我无法在此函数之外访问它。
$.ajax({
type: 'GET',
url: url,
async: true,
jsonpCallback: 'jsonCallback',
contentType: "application/json",
dataType: 'jsonp',
success: function(json) {
//console.log("good");
v1 = [];
$.each(json, function(key, val) {
// $('ul').append('<li id="' + key + '">' + val.dir + ' ' + val.nr + '</li>');
if(val.dir === "IESIRE"){
// console.log(val.data);
v1.push(val.data);
}
});
},
error: function(e) {
console.log(e.message);
}
});
console.log(v1);
&#13;
请帮助理解这一点。
答案 0 :(得分:0)
您可以通过函数调用获取数据。您可以阅读有关此here的更多信息。一个示例小提琴http://jsfiddle.net/y4vv6t8y/
$.ajax({
type: 'GET',
url: 'http://echo.jsontest.com/key/value/one/two',
async: true,
jsonpCallback: 'jsonCallback',
contentType: "application/json",
dataType: 'jsonp',
success: function(json) {
//console.log("good");
v1 = [];
$.each(json, function(key, val) {
v1.push(val);
});
_callback(v1);
},
error: function(e) {
console.log(e.message);
}
});
function _callback(data){
console.log(data);
}
答案 1 :(得分:0)
首先在$ .ajax调用之外声明变量var v1 = [];
。它将从您传递给$.each
的匿名函数的范围内访问。