在所有位置插入 Adjacent

如要在 HTML 文件中插入內容,有三種方法:

  • 使用 createNodeappendChild 等 DOM 方法
  • 使用文件片段
  • 使用innerHTML

有人可能會說,我們也有一些用途需要使用 document.write

innerHTML 已在 HTML5 中標準化,並與兄弟方法 insertAdjacentHTML 搭配使用,後者可用於 innerHTML,但可讓我們更明確地定義要插入 HTML 內容的位置:beforeBegin、afterBegin、beforeEnd 和 afterEnd。

var ul = document.getElementById("list");
ul.insertAdjacentHTML("beforeEnd", "<li>A new li on the list.</li>");

早在 2008 年,John Resig 就曾撰寫一篇關於 insertAdjacentHTML 的文章,並在文中做出以下結論:

目前 insertAdjacentHTML 的主要問題是缺乏瀏覽器支援。自 Firefox 8 版起,實作 insertAdjacentHTML 後,所有主要瀏覽器 (包括行動瀏覽器) 都支援這項功能。如果您想立即使用此功能,並確保其可在 Firefox 8 之前的版本中運作,可以使用這個 polyfill