javascript createElement 通过 appendChild 返回错误
2019-08-14
89
我正在尝试编写一个简短的 javascript 函数,以便将上一个/下一个按钮添加到我组装的 css-slider 中。
我无法访问 DOM,因此我想我只需通过 javascript 插入 div 即可。以下是函数:
function createfn(){
var element = document.createElement("div");
var prev = document.createTextNode("<");
element.appendChild(prev);
document.getElementsByClassName("sqs-gallery")[0].appendChild(element);
}
window.onload=createfn();
我收到错误:
"Cannot read property 'appendChild' of undefined"
带有类
.sqs-gallery
的
div
容器肯定出现在页面上。我怀疑这是否在 DOM 完全加载之前以某种方式运行,但我有
window.onload
,它(我相信)应该等到所有内容都加载完毕后再运行该函数。
非常感谢任何和所有的想法和帮助!
2个回答
您执行
window.onload=createfn()
;
这意味着您将
createfn()
的结果分配给
onload
(而不是函数)。
并且函数“
createfn
”立即执行(不等待窗口加载)。
只需删除括号即可分配处理程序而不是函数值。
Alex Vovchuk
2019-08-14
如果您将代码保留为
window.onload=createfn()
(带括号),则
createfn
将在代码开始运行时直接运行(甚至在 DOM 加载之前),因为结果需要分配给
window.onload
。
您应该尝试做的是分配函数,而不是结果:
window.onload=createfn
。这应该可以正常工作。
Spearmint
2019-08-14