JS實現jQuery的append功能

Show Me The Code

HTMLElement.prototype.appendHTML = function(html) {
	let divTemp = document.createElement("div");
	let nodes = null;
	let fragment = document.createDocumentFragment();
	divTemp.innerHTML = html;
	nodes = divTemp.childNodes;
	nodes.forEach(item => {
		fragment.appendChild(item.cloneNode(true));
	})
	// 插入到最後 append
	this.appendChild(fragment);
	// 在最前插入 prepend
	// this.insertBefore(fragment, this.firstChild);
	nodes = null;
	fragment = null;
};

測試下效果

html

<style>
.child {
  height: 50px;
  width: 50px;
  background: #66CCFF;
  margin-bottom: 1em;
}
</style>

<div id="app">
  <div class="child">
  <div class="child">
</div>

js

let app = document.getElementById('app');
let child = `<div class="child">down</div>`;
app.appendHTML(child);

效果

PS

另外, 如果想實現在上方插入的話, 隻需要把代碼裡的this.appendChild(fragment); 改為 this.insertBefore(fragment, this.firstChild);

另一種方法

var div2 = document.querySelector("#div2");
  div2.insertAdjacentHTML("beforebegin","<p>hello world</p>");//在調用元素外部前面添加一個元素
  div2.insertAdjacentHTML("afterbegin","<p>hello world</p>");//在調用元素的內部添加一個子元素並取代瞭第一個子元素
  div2.insertAdjacentHTML("beforeend","<p>hello world</p>");//在調用元素內部後面添加一個子元素 即取代瞭最後的子元素
  div2.insertAdjacentHTML("afterend","<p>hello world</p>");//在調用元素的外部後面添加一個元素

瀏覽器的渲染的效果:

此方法是ie 的最早的方法所以兼容性特別好

以上就是JS實現jQuery的append功能的詳細內容,更多關於JS 實現jQuery append的資料請關註WalkonNet其它相關文章!

推薦閱讀: