$.getJSON(
"http://www.pm25.in/api/querys/aqi_ranking.json?token&callback=?",
function(data){
var i = data.length;
var m = 0;
var str;
for(var y=0; y<i; y++){ m++;
str += "<tr><td>"+m+"</td><td>"
+data[y].area+"</td><td>"+data[y].aqi+"</td><td>"
+data[y].quality+"</td><td>"+data[y].primary_pollutant+"</td><td>"
+data[y].pm2_5+"</td><td>"+data[y].pm10+"</td><td>"+data[y].co+"</td><td>"
+data[y].no2+"</td><td>"+data[y].o3+"</td><td>"
+data[y].o3_8h+"</td><td>"+data[y].so2+"</td>";
$('tbody[rank="2"]').html(str);}
$(function(){$('.container2').highcharts({
chart:{type:'column',margin:[ 50,50,100,80]},
title:{text:'全国实时空气质量指数(AQI) 前十名'},
xAxis:{categories:[
data[0].area,data[1].area,data[2].area,
data[3].area,data[4].area,data[5].area,
data[6].area,data[7].area,data[8].area,
data[9].area,data[10].area,data[11].area,
data[12].area,data[13].area,data[14].area,
data[15].area,data[16].area,data[17].area,
data[18].area,data[19].area],
labels:{rotation:-45,align:'right',
style:{fontSize:'13px',
fontFamily:'Verdana,sans-serif'}}},
yAxis:{min:0,title:{text:'数据来源于国家环境保护部网站'}},
legend:{enabled: false},
series:[{name:'AQI',
data:[data[0].aqi,data[1].aqi,
data[2].aqi,data[3].aqi,data[4].aqi,
data[5].aqi,data[6].aqi,data[7].aqi,
data[8].aqi,data[9].aqi,data[10].aqi,
data[11].aqi,data[12].aqi,data[13].aqi,
data[14].aqi,data[15].aqi,data[16].aqi,
data[17].aqi,data[18].aqi,data[19].aqi],
dataLabels:{enabled:true,
rotation:-90,color:'#FFFFFF',
align:'right',x:4,y:10,
style:{fontSize: '13px',
fontFamily:'Verdana,sans-serif',
textShadow:'0 0 3px black'}}}]});});});
alert(data[0].area);//没定义
有尝试过:
1、在jsonp作用域内定义:var Str;window.Str = data;
然后在全局Str也是没有定义的!
2 var Str;Str = $(function(){$('.container2').highcharts({
...
return data;
})
全局的Str仍然没有定义的!
更新代码:
window.dataSet = {};
$.getJSON(
"http://www.pm25.in/api/querys/aqi_ranking.json?token=pFgCuwyEQJzqzuZ1wnSm&callback=?",
function(data){
var i = data.length;
var m = 0;
var str;
for(var y=0; y<i; y++){ m++;
str += "<tr><td>"+m+"</td><td>"
+data[y].area+"</td><td>"+data[y].aqi+"</td><td>"
+data[y].quality+"</td><td>"+data[y].primary_pollutant+"</td><td>"
+data[y].pm2_5+"</td><td>"+data[y].pm10+"</td><td>"+data[y].co+"</td><td>"
+data[y].no2+"</td><td>"+data[y].o3+"</td><td>"
+data[y].o3_8h+"</td><td>"+data[y].so2+"</td>";
$('tbody[rank="2"]').html(str);}
$(function(){$('.container2').highcharts({
chart:{type:'column',margin:[ 50,50,100,80]},
title:{text:'全国实时空气质量指数(AQI) 前十名'},
xAxis:{categories:[
data[0].area,data[1].area,data[2].area,
data[3].area,data[4].area,data[5].area,
data[6].area,data[7].area,data[8].area,
data[9].area,data[10].area,data[11].area,
data[12].area,data[13].area,data[14].area,
data[15].area,data[16].area,data[17].area,
data[18].area,data[19].area],
labels:{rotation:-45,align:'right',
style:{fontSize:'13px',
fontFamily:'Verdana,sans-serif'}}},
yAxis:{min:0,title:{text:'数据来源于国家环境保护部网站'}},
legend:{enabled: false},
series:[{name:'AQI',
data:[data[0].aqi,data[1].aqi,
data[2].aqi,data[3].aqi,data[4].aqi,
data[5].aqi,data[6].aqi,data[7].aqi,
data[8].aqi,data[9].aqi,data[10].aqi,
data[11].aqi,data[12].aqi,data[13].aqi,
data[14].aqi,data[15].aqi,data[16].aqi,
data[17].aqi,data[18].aqi,data[19].aqi],
dataLabels:{enabled:true,
rotation:-90,color:'#FFFFFF',
align:'right',x:4,y:10,
style:{fontSize: '13px',
fontFamily:'Verdana,sans-serif',
textShadow:'0 0 3px black'}}}]});});
dataSet.some = data;});
alert(typeof dataSet.some);
弹出undefined
阿神2017-04-10 13:14:52
您贴的这段代码让人看得简直想自杀……
简单滴说,如果你有一个 Ajax 请求获得的数据,和另外一个需要这些数据的地方:
$.getJSON('API', function (data) {
// 对 data 做你想做的事儿
};
$('ELEMENT').highcharts({
...
key: {
// 这儿,你需要 data 了
}
});
你的想法是把 data
暴露到全局去,这样任何地方都能拿得到,对吧?其实不需要,把业务逻辑单独封装,然后拿到数据之后运行它,把数据传进去。
$.getJSON('API', function (data) {
// 对 data 做你想做的事儿
...
// 运行你的业务,把 data 传给它
dosome(data);
};
function doSome(data) {
$('ELEMENT').highcharts({
...
key: data // 这儿,你需要 data 了,它就是传进来的
});
}
当然,这么写太恶心了,丝毫没有组织性,不过只是一小段片段的话,你能明白意思就好。
附图:
http://jsfiddle.net/nightire/QuAsn/embedded/