如何将DOM元素附加到JavaScript中的空元素中?

时间:2009-11-21 19:32:02

标签: javascript dom appendchild

我有一堆对象返回一个DOM树,然后我用它来附加到一个元素。例如,

var elem = document.createElement('div');
elem.appendChild(callSomePrototypesMethod());
elem.appendChild(callSomePrototypesMethod());
elem.appendChild(callSomePrototypesMethod());

我最终会以类似的方式结束:

<div>
<div id="...">...</div>
<div id="...">...</div>
<div id="...">...</div>
</div>

这三个DIV是由第三方代码创建的,我在这里将它们包装在我的DIV标签周围,但我想要的只是将它们附加到一个空元素,但它不起作用:

var elem = document.createElement('');
elem.appendChild(callSomePrototypesMethod());
elem.appendChild(callSomePrototypesMethod());
elem.appendChild(callSomePrototypesMethod());

预期结果:

<div id="...">...</div>
<div id="...">...</div>
<div id="...">...</div>

我不确定这对你是否有意义,但我需要使用DOM,我不能将这些内容放在任何其他元素中......

2 个答案:

答案 0 :(得分:6)

这就是document fragments的用途。您可以通过document.createDocumentFragment()创建一个新片段,并将其用作单个元素。

答案 1 :(得分:0)

如果你想直接在文档正文中插入指定元素(不在像'div'这样的其他元素内),试试

document.body.appendChild( callSomePrototypesMethod() );

IE中有关于'document.body.appendChild'的说明。请参阅http://danielsaidi.wordpress.com/tag/documentbodyappendchild/