最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JS實(shí)現(xiàn)jQuery的append功能

 更新時(shí)間:2021年05月28日 10:44:45   作者:Beater  
jQuery中可以直接使用$el.append()為元素添加字符串型dom, 但是最近轉(zhuǎn)戰(zhàn)Vue, 再使用jQuery明顯不合適了, 所以通過(guò)查找資料, 封裝一個(gè)可以實(shí)現(xiàn)同樣效果的方法.

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;
};

測(cè)試下效果

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

另外, 如果想實(shí)現(xiàn)在上方插入的話, 只需要把代碼里的this.appendChild(fragment); 改為 this.insertBefore(fragment, this.firstChild);

另一種方法

var div2 = document.querySelector("#div2");
  div2.insertAdjacentHTML("beforebegin","<p>hello world</p>");//在調(diào)用元素外部前面添加一個(gè)元素
  div2.insertAdjacentHTML("afterbegin","<p>hello world</p>");//在調(diào)用元素的內(nèi)部添加一個(gè)子元素并取代了第一個(gè)子元素
  div2.insertAdjacentHTML("beforeend","<p>hello world</p>");//在調(diào)用元素內(nèi)部后面添加一個(gè)子元素 即取代了最后的子元素
  div2.insertAdjacentHTML("afterend","<p>hello world</p>");//在調(diào)用元素的外部后面添加一個(gè)元素

瀏覽器的渲染的效果:

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

以上就是JS實(shí)現(xiàn)jQuery的append功能的詳細(xì)內(nèi)容,更多關(guān)于JS 實(shí)現(xiàn)jQuery append的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論

亚东县| 垫江县| 琼结县| 阳朔县| 西华县| 桑日县| 乌兰浩特市| 泗洪县| 远安县| 商河县| 苗栗县| 安乡县| 饶阳县| 溆浦县| 都江堰市| 宝山区| 东莞市| 宾川县| 东乌珠穆沁旗| 台东县| 辽阳县| 许昌县| 米易县| 宜君县| 高邑县| 东城区| 临江市| 平山县| 武强县| 昭苏县| 大方县| 凌云县| 邵阳县| 三台县| 蓬溪县| 古丈县| 铅山县| 南城县| 绩溪县| 七台河市| 万载县|