Code前端首页关于Code前端联系我们

原生JS实现jQuery追加功能

terry 2年前 (2023-09-07) 阅读数 255 #Vue

JQuery可以直接使用$el.append()给元素添加字符串类型的dom,但是最近改用Vue又用jQuery显然不合适,所以通过查资料,封装了一个可以实现的方法效果一样。

显示代码
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>
 

script

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

效果

在底部插入在底部插入

PS

另外,如果你想在顶部插入,
只需将代码中的this.appendChild(fragment);
更改为this.insertBefore(fragment, this.firstChild);

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门