我有这个功能:
function getReport(name,x) {
var xArr = [];
var yArr = [];
$.ajax({
async: false,
type: "POST",
//async: false,
//dataType: "json",
url: "reportAjax.php",
data: "name="+ name,
success: function(data){
var json = $.parseJSON(data);
var chartDesc = json.INFO.DESC;
$.each(json.RESULT, function(i, object) {
$.each(object, function(property, value) {
//alert(property + "=" + value);
if (property == x) {
xArr.push(value);
}
else {
yArr.push(parseInt(value));
}
});
});
}
});
console.log(xArr);
console.log(yArr);
console.log(chartDesc);
drawChart(xArr,yArr,chartDesc);
}
出于某种原因,我可以在
console.log
中看到xArr
和yArr
的值,但是对于chartDesc is not defined
我却得到了chartDesc
。如果将
console.log(chartDesc)
行移动到该行var chartDesc = json.INFO.DESC
下,则可以正确看到它。这是为什么?
最佳答案
您在AJAX回调函数中声明了chartDesc
变量,因此该变量不在以后对其的引用范围之内。
要解决此问题,请从行首删除var
,然后使用xArr
和yArr
变量在函数顶部声明它:
var xArr = [];
var yArr = [];
var chartDesc = "";