Jeeeeeeeeen

javascript Element.insertAdjacentHTML()

May 28, 2015 | 0 Minute Read

概述

insertAdjacentHTML() 将指定的文本解析为 HTML 或 XML,然后将结果节点插入到 DOM 树中的指定位置处。该方法不会重新解析调用该方法的元素,因此不会影响到元素内已存在的元素节点。从而可以避免额外的解析操作,比直接使用 innerHTML 方法要快。

语法

element.insertAdjacentHTML(position, text);

position 是相对于 element 元素的位置,并且只能是以下的字符串之一:

  • beforebegin - 在 element 元素的前面。
  • afterbegin - 在 element 元素的第一个子节点前面。
  • beforeend - 在 element 元素的最后一个子节点后面。
  • afterend - 在 element 元素的后面。

text 是字符串,会被解析成 HTML 或 XML,并插入到 DOM 树中。

位置名称示意:

<!-- beforebegin -->
<section>
<!-- afterbegin -->

内容...

<!-- beforeend -->
</section>
<!-- afterend -->

javascript VS. jQuery

<!--  After -->

<!-- JQUERY -->
$(el).after(htmlString);
<!-- IE8+ -->
el.insertAdjacentHTML('afterend', htmlString);

<!-- Append -->

<!-- JQUERY -->
$(parent).append(el);
<!-- IE8+ -->
parent.appendChild(el);

<!-- Before -->

<!-- JQUERY -->
$(el).before(htmlString);
<!-- IE8+ -->
el.insertAdjacentHTML('beforebegin', htmlString);

Resource

  1. MDN - Element.insertAdjacentHTML()
  2. jQuery free