我只是尝试使用从fetch()请求返回的数据来编辑DOM。我仍然是异步编程的新手,我相信我在这里做错了。
下面是代码:
window.onload = () => {
const apiURL = 'https://www.APIurl.......';
fetch(apiURL).then( (response) => {
return response.json();
}).then( (object) => {
let {values} = object;
document.getElementById('date1').innerHTML = values[0][0];
console.log('This will run');
document.getElementById('date2').innerHTML = values[13][0];
console.log('This will not run');
document.getElementById('date3').innerHTML = values[31][0];
});
}
我的问题是我打电话,把数据恢复得很好,但是当我试图操纵DOM时,只有第一次编辑才有效。我不确定document.getElementById是否导致回调提前返回,但是我需要使用我回来的数据编辑DOM上的多个元素。
如果有更好的方法可以做到这一点,或者如果有人有修复,那就太棒了!
谢谢!
答案 0 :(得分:0)
您收到错误out.close();
,这意味着您正在选择元素,此元素不存在于DOM中(返回"TypeError: Cannot set property 'innerHTML' of null"
)并且您&# 39;重新尝试设置null
的{{1}}属性。
要解决此问题,您必须在标记中添加innerHTML
和null
元素,以便设置date2
。
此外,为了记录您的Promises中的错误,请按How does Swift translate -[NSView print] to printView()?
中的说明添加date3
阻止