我需要一种无需使用innerHTML即可将HTML附加到容器元素的方法。我不想使用innerHTML的原因是因为当使用这样的内容时:
element.innerHTML += htmldata
它的工作原理是先添加所有html,然后再添加旧html和新html。这不好,因为它会重置动态媒体,例如嵌入式Flash视频…
我可以通过这种方式工作:
var e = document.createElement('span'); e.innerHTML = htmldata; element.appendChild(e);
但是,这种方式的问题是我现在不想在文档中有多余的span标签。
那怎么办呢?谢谢!
给出一个替代方案(因为使用DocumentFragment似乎无效):您可以通过遍历新生成的节点的子级并仅追加这些子级来模拟它。
DocumentFragment
var e = document.createElement('div'); e.innerHTML = htmldata; while(e.firstChild) { element.appendChild(e.firstChild); }