概述
insertAdjacentHTML() 將指定的文本解析為HTML或XML,并將結(jié)果節(jié)點(diǎn)插入到DOM樹中的指定位置秕铛。它不會重新解析它正在使用的元素,因此它不會破壞元素內(nèi)的現(xiàn)有元素缩挑。這避免了額外的序列化步驟但两,使其比直接innerHTML操作更快。
語法
element.insertAdjacentHTML(position, text);
position是相對于元素的位置供置,并且必須是以下字符串之一:
beforebegin
: 元素自身的前面谨湘。afterbegin
: 插入元素內(nèi)部的第一個(gè)子節(jié)點(diǎn)之前。beforeend
: 插入元素內(nèi)部的最后一個(gè)子節(jié)點(diǎn)之后。afterend
: 元素自身的后面紧阔。
text是要被解析為HTML或XML,并插入到DOM樹中的字符串坊罢。
位置名稱的可視化:
<!-- beforebegin -->
<p>
<!-- afterbegin -->
foo
<!-- beforeend -->
</p>
<!-- afterend -->
注意: beforebegin和afterend位置,僅在節(jié)點(diǎn)在樹中且節(jié)點(diǎn)具有一個(gè)parent元素時(shí)工作.
eg
// <div id="one">one</div>
var d1 = document.getElementById('one');
d1.insertAdjacentHTML('afterend', '<div id="two">two</div>');
// 此時(shí),新結(jié)構(gòu)變成:
// <div id="one">one</div><div id="two">two</div>
游覽器兼容
image.png