Доброго времени суток!
Помогите разобраться, накатал такой скрипт, он подключается к гугл.таблицам и тащит от туда информацию.
При переборе массива данных в for в функции showGoods возникает ошибка, "Cannot read property 'length' of undefined", в чем может быть проблема?
window.addEventListener('load',function () {
//Послать запрос
let getJSON = function(url,callback) {
let xhr = new XMLHttpRequest();
xhr.open('GET',url,true);
xhr.responseType = 'json';
xhr.onload = function() {
let status = xhr.status;
if (status === 200) {
callback(null,xhr.response)
}else{
callback(status,xhr.response);
}
};
xhr.send();
}
getJSON('https://spreadsheets.google.com/feeds/list/1mR7U2IxFF9ZHL0DKmZdmA4QQKW9P816DM_MuA3LkOho/od6/public/values?alt=json',function(err,data) {
if (err !== null) {
console.log('Error: '+err)
}else{
data = data['feed']['entry'];
document.getElementsByTagName('table').innerHTML = showGoods(data);
console.log(showGoods())
}
});
function showGoods(data) {
let table = document.getElementsByTagName('tbody')[0];
let tableAtr = table.getAttribute('data-category');
let out = '';
for(var i = 0; i < data.length; i++) {
if (data[i]['gsx$category']['$t'] === tableAtr) {
out += `<tr>`
out += `<td>${data[i]['gsx$name']['$t']}</td> `
out += `<td>${data[i]['gsx$sort']['$t']}</td> `
out += `<td>${data[i]['gsx$opt']['$t']}</td> `
out += `<td><span>0</span></td> `
out += `<td>
<span>
<span>итог: </span>
<span class="result">0.00</span> руб.
</span>
<button class="buy">В корзину</button>
</td> `
out += `</tr>`
}
}
return out;
}
});