我已經解決了我的問題,但不能回答我自己,因爲我太新,這個網站:「容器沒有定義」谷歌圖表
原來我需要使用以下命令:
chart = new google.visualization.PieChart(document.getElementById('pie_today_div'));
我正在使用JQuery訪問元素$('#pie_today_div')
。由於現在的證據指向一個事實,那餅圖構造必須有標準的JS代碼,document.getElementById('pie_today_div')
也許別的事情上,但改變我訪問容器元素的方式修正我的代碼
原來的問題對於我的解決方案的參考
當我嘗試實例化Google PieChart對象時,出現「容器未定義」錯誤。
我驗證了我的網頁http://validator.w3.org/,我收到一條非常綠色的橫幅,表示它已經過驗證。
當頁面加載時,我不會收到js錯誤。我的Ajax調用正在使用我想要從數據庫獲取的數據進行完整的往返。
這裏是我的HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<link href="/css/note.css?10022012" rel="stylesheet" type="text/css" media="screen">
<script type="text/javascript" language="javascript" src="/call/js/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">google.load('visualization', '1.0', {'packages':['corechart']});</script>
<script type="text/javascript" language="javascript" src="/call/js/init.js?10042012-2"></script>
<title>Call Stats</title>
</head>
<body>
<a href="#" id="pie_today_link">Today Stats</a>
<div id="pie_today_div"></div>
</body>
</html>
這裏是JS:
function drawPieChartToday() {
$.post('/call/ajax.php5',{
action:'pieToday'
}, function(ticketData) {
var data = new google.visualization.DataTable();
data.addColumn('string', 'Count');
data.addColumn('number', 'Topic');
for (var key in ticketData){
data.addRow([key, ticketData[key]]);
}
options = {
title: 'Issue Topics'
};
alert($('#pie_today_div').attr('id'));
chart = new google.visualization.PieChart($('#pie_today_div'));
chart.draw(data, options);
},'json');
}
這裏是我的調試代碼,以確保該元素已被發現: alert($('#pie_today_div').attr('id'));
< - 警報「pie_today_div」
看看我的回答,原因是jquery選擇器返回一組匹配元素(數組),即使在選擇唯一ID時也是如此。 – abidibo
這是一個非常有用的信息,我需要記住我的剩餘IT生活。 –