对象没有方法'appendChild'

时间:2013-07-12 05:56:06

标签: javascript

当我将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);    

有没有人知道为什么我不能这样追加?

1 个答案:

答案 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);