通过ID获取元素将返回null

问题描述 投票:0回答:2

const data = [{color : "red"},{color : "blue"}, {color : "green"} ];

function libraryRoot() {
  load();
  return (`<div id="appDiv">
                    ${data.map(function(value){
                    	return `<div><p>Color ${value.color} from libraryRoot</p>`
                    }).join("")}  
                </div>
              `);
}

window.onload = libraryRoot;

function load() {
  let a = document.getElementById("appDiv");
  console.log(a);
}

let defaultLayout = libraryRoot();
document.getElementById("root").innerHTML = defaultLayout;
<div>
  <div id="root"></div>
</div>

嗨,我按照大家的建议修改了脚本,但是仍然在第一个实例的返回值上显示null,然后打印div。你们可以在发生错误的情况下帮助我。

我想做的就是我想调用“ appDiv” id并为其添加按钮功能。就像点击{//做某事}。

更新Codepen Project

javascript html arrays innerhtml getelementbyid
2个回答
0
投票

在将元素写入DOM之前,您将无法访问它。注意document.getElementById()中的单词document。这是文档API的一种方法。DOM代表文档对象模型。


0
投票

第一个问题是您首先调用load(),它正在尝试访问尚不存在的appDiv节点。因此,请重新考虑其顺序。

© www.soinside.com 2019 - 2024. All rights reserved.