【发布时间】:2018-02-07 09:02:03
【问题描述】:
就上下文而言,我正在尝试构建一个页面,以显示当天所有活跃体育比赛的谷歌图表。数据馈送将告知有多少(在我下面的示例中,正在进行 3 场比赛。)从那里,我想循环通过一组游戏,使用 jQuery 为每个游戏创建一个 div,然后放置一个谷歌图表进入每个 div。这是我写的:
这将来自数据馈送:
var activeGames = 3;
循环浏览活跃游戏,为每个游戏建立图表
for (i = 0; i < activeGames; i++){
$('.chartContainer').append("<div id='game'></div>");
google.charts.load('current', {packages: ['corechart', 'line']});
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var data = new google.visualization.DataTable();
data.addColumn('number', 'Team A');
data.addColumn('number', 'Team B');
data.addRows([1,1]);
//chart data redacted, would come from data feed
var options = {
//chart options redacted, irrelevant
};
var chart = new google.visualization.LineChart(document.getElementById('game'));
chart.draw(data, options);
}
相关基础知识:
- 适当地链接到 HTML 中的 jQuery
- 我的 HTML 文件基本上只是 chartContainer 类的一个 div
如果我在 html 文件中创建 div id='g1',图表显示正常,但由于某种原因,当 div 由 jquery 创建时没有图表显示,即使 div 确实已创建.
感谢任何帮助。
更新:这是有效的:
加载谷歌图表包
google.charts.load('current', {packages: ['corechart', 'line']});
google.charts.setOnLoadCallback(drawChart);
调用函数,for循环进入:
function drawChart() {
var activeGames = 3;
for (i = 0; i < activeGames; i++){
$('.container').append("<div id='g" + i + "'></div>");
var data = new google.visualization.DataTable();
data.addColumn('number', 'Team A');
data.addColumn('number', 'Time');
data.addRows([1,1]]); //redacted the rest
var options = {};//redacted
var chart = new google.visualization.LineChart(document.getElementById('g'+ i));
chart.draw(data, options);
};
};
【问题讨论】:
-
部分问题可能与您使用相同的
id创建多个divs 的事实有关。id对于页面应该是唯一的。
标签: javascript jquery html charts google-visualization