我有一堆对象返回一个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,我不能将这些内容放在任何其他元素中......
答案 0 :(得分:6)
这就是document fragments的用途。您可以通过document.createDocumentFragment()
创建一个新片段,并将其用作单个元素。
答案 1 :(得分:0)
如果你想直接在文档正文中插入指定元素(不在像'div'这样的其他元素内),试试
document.body.appendChild( callSomePrototypesMethod() );
IE中有关于'document.body.appendChild'的说明。请参阅http://danielsaidi.wordpress.com/tag/documentbodyappendchild/。