Несколько GetElementByID не работает, как мне зациклить Javascript? - PullRequest
0 голосов
/ 27 марта 2019

У меня есть несколько getElementById, которые извлекают данные из Google Sheets на основе заголовков столбцов.Когда у меня есть только один getElementById, он работает отлично, но как только я добавляю секунду, он не работает.Мне сказали, что я должен зациклить их, но пока не знаю как.Я был бы очень признателен, если бы вы помогли мне зациклить их.

function httpGetAsync(theUrl, callback) {
  var xmlHttp = new XMLHttpRequest();
  xmlHttp.onreadystatechange = function() {
    if (xmlHttp.readyState == 4 && xmlHttp.status == 200)
      callback(xmlHttp.responseText);
  }
  xmlHttp.open("GET", theUrl, true); // true for asynchronous
  xmlHttp.send(null);
}

httpGetAsync('https://spreadsheet.glitch.me/? 
key = 1 JBbAHH1DFtO1r56lr94lUqd8H7qPcHncJskcPq0r96o ', function(response){
var json = JSON.parse(response);

document.getElementById("btm").innerHTML = json[0].btm;
});

document.getElementById("totalpoints").innerHTML = json[1].totalpoints;
});

document.getElementById("btm").innerHTML = json[1].btm;
});

document.getElementById("average").innerHTML = json[4].average;
});

1 Ответ

3 голосов
/ 27 марта 2019

Вы закрываете функцию обратного вызова с дополнительным "});" после каждого document.getElementById ...

Удалите их, и ваш код должен работать.

function httpGetAsync(theUrl, callback)  {
  var xmlHttp = new XMLHttpRequest();
  xmlHttp.onreadystatechange = function() {
  if (xmlHttp.readyState == 4 && xmlHttp.status == 200)
     callback(xmlHttp.responseText);
  }
  xmlHttp.open("GET", theUrl, true); // true for asynchronous
  xmlHttp.send(null);
}

httpGetAsync('https://spreadsheet.glitch.me/?key=1JBbAHH1DFtO1r56lr94lUqd8H7qPcHncJskcPq0r96o', function(response) {
var json = JSON.parse(response);

document.getElementById("btm").innerHTML = json[0].btm;
document.getElementById("totalpoints").innerHTML = json[1].totalpoints;
document.getElementById("btm").innerHTML = json[1].btm;
document.getElementById("average").innerHTML = json[4].average;
});
<div id="btm"></div>
<div id="totalpoints"></div>
<div id="average"></div>
...