JavaScript 循环创建innerHTML(Google Sheet)

标签 javascript google-visualization

我正在使用 Google 表格作为来源来获取一些数据。我发生了三个类似的查询,但只有两个返回结果并在我的表格单元格中工作。环顾四周后,我看到人们循环创建 id=# 以包含在他们的 HTML 中,但我不太清楚用我的语法来执行此操作。

这是我目前正在使用的,(警告:Noobie Code Ahead)

<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load('visualization', '1', {packages: ['gauge']});
google.setOnLoadCallback(queryValue);
function queryValue () {
var query = new google.visualization.Query('https://spreadsheets.google.com/spreadsheet/tq?range=B22:B37&key=0AhCv9Xu_eRnSdFNhSzNQUFd3b1ZfRHgtQURINFpzeGc&gid=7');
query.send(function (response) {
    if (response.isError()) {
        alert('Error in query: ' + response.getMessage() + ' ' + response.getDetailedMessage());
        return;
    }
    var data = response.getDataTable();

    // fetch the data from range B22:B37 into the span "bx"
    // These are date labels 
    document.getElementById('b22').innerHTML = data.getValue(0, 0);
    document.getElementById('b23').innerHTML = data.getValue(1, 0);
    document.getElementById('b24').innerHTML = data.getValue(2, 0);
    document.getElementById('b25').innerHTML = data.getValue(3, 0);
    document.getElementById('b26').innerHTML = data.getValue(4, 0);
    document.getElementById('b27').innerHTML = data.getValue(5, 0);
    document.getElementById('b28').innerHTML = data.getValue(6, 0);
    document.getElementById('b29').innerHTML = data.getValue(7, 0);
    document.getElementById('b30').innerHTML = data.getValue(8, 0);
    document.getElementById('b31').innerHTML = data.getValue(9, 0);
    document.getElementById('b32').innerHTML = data.getValue(10, 0);
    document.getElementById('b33').innerHTML = data.getValue(11, 0);
    document.getElementById('b34').innerHTML = data.getValue(12, 0);
    document.getElementById('b35').innerHTML = data.getValue(13, 0);
    document.getElementById('b36').innerHTML = data.getValue(14, 0);
    document.getElementById('b37').innerHTML = data.getValue(15, 0);
});
}
google.setOnLoadCallback(queryValue1);
function queryValue1 () {
var query = new google.visualization.Query('https://spreadsheets.google.com/spreadsheet/tq?range=A22:A37&key=0AhCv9Xu_eRnSdFNhSzNQUFd3b1ZfRHgtQURINFpzeGc&gid=7');
query.send(function (response) {
    if (response.isError()) {
        alert('Error in query: ' + response.getMessage() + ' ' + response.getDetailedMessage());
        return;
    }
    var data1 = response.getDataTable();

    // fetch the data from range A22:A37 into the span "bx"
    // These are the labels on the top of the gauges and I want to turn the color of the gauge range. (i.e. <70:red, 71-89:yellow, 90-100:red)
    document.getElementById('a22').innerHTML = data1.getValue(0, 0);
    document.getElementById('a23').innerHTML = data1.getValue(1, 0);
    document.getElementById('a24').innerHTML = data1.getValue(2, 0);
    document.getElementById('a25').innerHTML = data1.getValue(3, 0);
    document.getElementById('a26').innerHTML = data1.getValue(4, 0);
    document.getElementById('a27').innerHTML = data1.getValue(5, 0);
    document.getElementById('a28').innerHTML = data1.getValue(6, 0);
    document.getElementById('a29').innerHTML = data1.getValue(7, 0);
    document.getElementById('a30').innerHTML = data1.getValue(8, 0);
    document.getElementById('a31').innerHTML = data1.getValue(9, 0);
    document.getElementById('a32').innerHTML = data1.getValue(10, 0);
    document.getElementById('a33').innerHTML = data1.getValue(11, 0);
    document.getElementById('a34').innerHTML = data1.getValue(12, 0);
    document.getElementById('a35').innerHTML = data1.getValue(13, 0);
    document.getElementById('a36').innerHTML = data1.getValue(14, 0);
    document.getElementById('a37').innerHTML = data1.getValue(15, 0);
});
}

最佳答案

要执行循环,您可以使用起点和终点,然后只需在代码中使用每个递增的值即可。

<小时/>

由于您基本上是从 0 循环到 15,因此开始位置将为 0,包含结束位置将为 15 。您的 ID 只是偏移了 22 并在前面加上 "b",因此我们使用加法来偏移数字,并使用连接来连接 “b”

for (var i = 0; i <= 15; i++) {
    document.getElementById('b' + (i + 22)).innerHTML = data.getValue(i, 0);
}

关于JavaScript 循环创建innerHTML(Google Sheet),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15176892/

相关文章:

javascript - 网格线边缘的谷歌图表颜色

javascript - Google 图表问题(图表标题、轴文本)

javascript - 在工具提示上显示百分比谷歌图表

javascript - 单击其他 div 时触发对不同元素的单击

javascript - 这个 Angular 代码有什么问题吗?

javascript - jQuery 获取第 n 个 :child from table after creating that with ajax

javascript - 在 JS 中使用 Bootstrap 颜色

charts - 在Google Visualization API中删除条形图中的条形之间的空间

javascript - 在 onChange 事件内的选项中获取名称 Prop 的最佳实践

javascript - 从图像列表中更改背景图像