【发布时间】:2020-03-08 20:16:39
【问题描述】:
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 并向其写入按钮功能。喜欢点击{//做某事}。
【问题讨论】:
-
检查你在做什么以及按什么顺序。第一次调用
getElementById第二次调用return(`<div id="appDiv">...并将该字符串存储在变量defaultLayout中,然后使用完全不相关的内容更新#root的内容。最终window将被加载并再次调用getElementById。但是您从来没有在文档中添加<div id="appDiv">;尤其是在你尝试getElementById它之前。 -
哪些元素正在改变?如果“数据”常量发生变化,请尝试以下函数 function load(){ let a=data console.log(a); }
-
大家好,我看到我正在尝试获取我在根目录中打印之前的内容。对不起代码的混乱,忘记了数组。我想要做的是用这个函数的一些内容更新根 div 内的布局,然后必须能够访问 newDivId 并将一些函数写入这些新 div。我该怎么做请帮忙:
-
也可以在模板 litreals 中编写函数,如果是这样,那么我的值应该首先返回并且 ID 必须返回一个值。但我不知道该怎么做:(
-
一个元素必须存在才能获得它。您正在尝试获取尚未创建的元素。
标签: javascript html arrays innerhtml getelementbyid