$.getJSON(geturl, function(data){
//Code
});
alert(data)
以上我要怎么才能访问data
$.getJSON(geturl, function(data){
//Code
youAlert(data);
});
function youAlert(data){
alert(data)
}
你这个 alert (data 肯定是 获取不到值 的 , 他是异步的,不能当同步使用),你打印出 data来 ,肯定是用他来 做你的 操作的 ,你可以把 你想要的操作 放在一个 函数里面 直接调用 ,这样 OK 的
这个根据json来判断
例如:{"Unid":1,"CustomerName":"宋江","Memo":"天魁星","Other":"黑三郎"}
直接
$.getJSON(geturl, function(data){
data = eval("(" + data + ")");
//Code
alert(data["Unid"]);
alert(data["CustomerName"]);
alert(data["Memo"]);
});
来个数组类型的json 也就是你 geturl 要返回的json数据
如果 geturl 要返回的json数据
[{"Unid":1,"CustomerName":"宋江","Memo":"天魁星","Other":"黑三郎"},
{"Unid":2,"CustomerName":"吴用","Memo":"天机星","Other":"智多星"}]
那么遍历json时候需要循环了。
$.getJSON(geturl, function(data){
$.each(data, function(k, v) {
$.each(v,function(kk, vv) {
alert(kk+"\t"+vv );
});
});
});
那也好办
这样
var demo="";
function demo()
{
$.getJSON(geturl, function(data){
demo=data;
});
alert("demo"+demo);
}
可以这$.getJSON(geturl, function(data){
d = data;//不加var会自动变成全局的。
});
alert(d) ;
这样是有问题的,因为ajax是异步提交,什么时候执行完返回我们是不确定的。也就是说alert(d); 可能打印不出值(当ajax没有返回时);
ajax请求完成时,也就是说响应返回后直接调用回调方法进行处理。
首先说明,不知道为什么要在
$.getJSON(geturl, function(data){});
我要在这里访问 data
//Code
alert(data)
为获取data的值,
1.ajax调用服务端代码你无法知晓何时返回.代码会接着往下执行。知道代码执行结束,代码除非碰到alert();才会是阻塞代码执行,否则无法确定何时返回。
所有如果你一定要要在外部获得返回data内容,可以模型alert 使代码阻塞,将返回内容赋予外部全局变量,然后在外部调用即可。