小编典典

Javascript-将HTML附加到不带innerHTML的容器元素

html

我需要一种无需使用innerHTML即可将HTML附加到容器元素的方法。我不想使用innerHTML的原因是因为当使用这样的内容时:

element.innerHTML += htmldata

它的工作原理是先添加所有html,然后再添加旧html和新html。这不好,因为它会重置动态媒体,例如嵌入式Flash视频…

我可以通过这种方式工作:

var e = document.createElement('span');
e.innerHTML = htmldata;
element.appendChild(e);

但是,这种方式的问题是我现在不想在文档中有多余的span标签。

那怎么办呢?谢谢!


阅读 280

收藏
2020-05-10

共1个答案

小编典典

给出一个替代方案(因为使用DocumentFragment似乎无效):您可以通过遍历新生成的节点的子级并仅追加这些子级来模拟它。

var e = document.createElement('div');
e.innerHTML = htmldata;

while(e.firstChild) {
    element.appendChild(e.firstChild);
}
2020-05-10