除了.innerHTML之外,将Javascript生成的HTML插入DOM的其他选项还有哪些?

除了.innerHTML之外,将Javascript生成的HTML插入DOM的其他选项还有哪些?,javascript,html,css,Javascript,Html,Css,通常的做法是使用.innerHTML将动态生成的HTML放置在容器元素中。对于适合页面流的静态定位元素来说,这是合乎逻辑的 如果您正在生成使用FIXED定位的HTML元素,该怎么办?是否需要创建占位符元素并使用placeholder.innerHTML将生成的元素插入DOM?使用占位符似乎有点违反直觉,因为新的HTML实际上不会显示在呈现文档流中的该位置 另外,如果生成大量固定元素,是否会影响性能?有没有一种更快的方法告诉浏览器“这是一个元素,我想在其他元素之上的固定位置进行渲染?”幸运的是,有

通常的做法是使用.innerHTML将动态生成的HTML放置在容器元素中。对于适合页面流的静态定位元素来说,这是合乎逻辑的

如果您正在生成使用FIXED定位的HTML元素,该怎么办?是否需要创建占位符元素并使用placeholder.innerHTML将生成的元素插入DOM?使用占位符似乎有点违反直觉,因为新的HTML实际上不会显示在呈现文档流中的该位置


另外,如果生成大量固定元素,是否会影响性能?有没有一种更快的方法告诉浏览器“这是一个元素,我想在其他元素之上的固定位置进行渲染?”

幸运的是,有人提出了一个答案。 看来我问错问题了。我需要使用innerHTML,但我可以在主体上作为附加来使用,而不是在占位符容器中覆盖innerHTML

document.body.innerHTML += someHtml;
这将把html附加到文档的末尾,从而消除了对容器的需要并暗示了意图


没有提到不修改DOM的性能或替代方案,但我怀疑这种方法已经足够好了。

您可以使用
insertAdjacentHTML()
方法

document.querySelector('div')。insertAdjacentHTML('beforebeagin','beforebeagin')
document.querySelector('div').insertAdjacentHTML('afterbegin','afterbegin')
document.querySelector('div').insertAdjacentHTML('beforeend','beforeend'))
document.querySelector('div')。insertAdjacentHTML('afterend','afterend')


一些文本

这似乎是一个相当固执己见的问题,缺乏很多细节。虽然很多人使用
innerHTML
,但它并不是解决所有涉及到向页面添加内容的问题的正确方法。您应该将内容放在哪里取决于内容是什么以及它与页面的关系。当以线性方式读取时,生成的DOM应该是有意义的。