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其它相關文章!