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