Javascript 如何将客户端呈现的HTML插入DOM

Javascript 如何将客户端呈现的HTML插入DOM,javascript,html,dom,Javascript,Html,Dom,我刚刚在浏览器中使用诸如、或之类的库呈现了一些HTML。例如,“我是文本!” 如果我使用的是React或Ember之类的框架,则渲染的模板将自动插入到DOM中(由于虚拟DOM的扩散,以最小侵入性的方式)。但是这些库只给了我一个HTML字符串。我该如何使用它 它是否像查找所需的父DOM节点并设置innerHTML那样简单?是否有一个DOM diffing库没有绑定到React中,我可以使用它 [edit]如果我重新渲染文本,并且它是相同的,插入DOM在理想情况下应该是幂等的,甚至不会干扰事件处理程

我刚刚在浏览器中使用诸如、或之类的库呈现了一些HTML。例如,
“我是文本!

如果我使用的是React或Ember之类的框架,则渲染的模板将自动插入到DOM中(由于虚拟DOM的扩散,以最小侵入性的方式)。但是这些库只给了我一个HTML字符串。我该如何使用它

它是否像查找所需的父DOM节点并设置
innerHTML
那样简单?是否有一个DOM diffing库没有绑定到React中,我可以使用它

[edit]如果我重新渲染文本,并且它是相同的,插入DOM在理想情况下应该是幂等的,甚至不会干扰事件处理程序

…我已经有了几个嵌套元素的字符串,希望将其添加到DOM中

您可以使用
.innerHTML
属性,但它有。更好的替代方法是调用类似
.innerHTML
的方法。它没有
innerHTML
所具有的功能,它的速度更快,并且您可以使用选项将字符串放在元素的前面/后面/前面/后面

签名 位置决定文本相对于元素的位置。它必须是以下值之一:

*beforebegin*// <== insert before the element
  <element>
      *afterbegin*// <== insert before the element's content (prepend)
      <child>Content</child>
      <child>Content</child>
      <child>Content</child>
      <child>Content</child>
      Content
      *beforeend*// <== insert after the element's content (append)
  </element>
  *afterend* // <== insert after the element

开始前的主要工作
主后起动
前主
主尾端
内容

内容

内容

内容

内容

内容

内容

内容

内容

内容

内容

内容

函数bb(){ document.querySelector('main')。insertAdjacentHTML('beforebeagin','此div已插入到beforebeagin'位置); } 函数ab(){ document.querySelector('.topic')。insertAdjacentHTML('afterbegin','此div已插入afterbegin'); } 函数be(){ document.querySelector(“#core”).insertAdjacentHTML('beforeend','此div已插入beforeend'位置); } 函数ae(){ document.querySelector('main#core.topic')。insertAdjacentHTML('afterend','此div已插入afterend'); }
您想要一种不使用凌乱字符串的本地方式将HTML添加到DOM中的方法吗
.createElement(TAG)
不,我已经有了几个嵌套元素的字符串,并且想将其添加到DOM中。非常酷!但这将在每次运行时插入渲染模板的新副本。@mgold所以您只需要在编辑源代码时使用它一次?还是你需要一些动态的东西?还是你想要一些互动和动态的东西?有一个问题。还有来自ES6的消息。
*beforebegin*// <== insert before the element
  <element>
      *afterbegin*// <== insert before the element's content (prepend)
      <child>Content</child>
      <child>Content</child>
      <child>Content</child>
      <child>Content</child>
      Content
      *beforeend*// <== insert after the element's content (append)
  </element>
  *afterend* // <== insert after the element