0

我基本上是在尝试遍历数组数组并为数组上的每个数组项创建一个新的 div 元素,然后向创建的新 div 元素添加一些代码。我收到Cannot set properties of null (setting 'innerHTML')错误消息,我理解这意味着 JS 在运行时无法识别 div 元素,但如果我只是在该行中创建了它,那么它肯定会在该行执行时存在。下面的示例代码:

for (var elem in ArrayOfArray){
            document.createElement('div').setAttribute('id', elem[1]);
            document.getElementById(elem[1]).innerHTML = "hello (or some other code)";
        }

有谁知道为什么这不起作用?TIA

4

1 回答 1

2

document.getElementById在文档中搜索具有给定 ID 的元素。

您已经创建了一个元素,在其上设置了一个属性,然后将其丢弃。您没有保留对它的任何引用,也没有将它添加到文档中。

它不在文档中getElementById以供查找。


const element = document.createElement('div');
element.setAttribute('id', elem[1]);
document.body.appendChild(element);
document.getElementById(elem[1]).innerHTML = "hello (or some other code)";

但是由于您需要保留对元素的引用才能做到这一点,您可以完全跳过处理 ID。

const element = document.createElement('div');
document.body.appendChild(element);
element.innerHTML = "hello (or some other code)";
于 2022-01-04T22:02:48.507 回答