当我将div发送到为文档片段创建内容的函数时,当我将片段附加到div时,它会向我提供此错误。
Object column_left has no method 'appendChild' '
这是我的代码:
function progress_bar(parent_div){
var frag = document.createDocumentFragment();
var d = document.createElement('div');
d.className = 'progress_bg';
d.style.width = '90%';
frag.appendChild(d);
parent_div.appendChild(frag);
}
该函数的调用如下:
var d = document.getElementById('column_left');
progress_bar(d);
有没有人知道为什么我不能这样追加?
答案 0 :(得分:2)
在致电progress_bar(d)
之前,#column_left
尚未存在,因此d
未定义。由于您将undefined
值传入progress_bar,因此无法在其上调用appendChild。
要解决此问题,您必须先创建#column_left
,或者选择预先存在的元素,例如document.body
。
Here是一个清理过代码的JSFiddle,我做了它,所以它会附加到文档的主体上,并设置内部内容实际呈现的内容。
如果您想在#column_left
上执行此操作,则可能是这样的:
var el = document.createElement('div');
el.id = 'column_left';
document.body.appendChild(el);
progress_bar(el);