JS实现jQuery的append功能

 更新时间:2021年05月28日 10:44:45   作者:Beater  
jQuery中可以直接使用$el.append()为元素添加字符串型dom, 但是最近转战Vue, 再使用jQuery明显不合适了, 所以通过查找资料, 封装一个可以实现同样效果的方法.

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的资料请关注脚本之家其它相关文章!

相关文章

  • 动态加载js的方法汇总

    动态加载js的方法汇总

    这篇文章主要介绍了动态加载js的方法,实例汇总了常见的几种动态加载技巧,非常具有实用价值,需要的朋友可以参考下
    2015-02-02
  • 原生js实现手风琴效果

    原生js实现手风琴效果

    这篇文章主要为大家详细介绍了原生js实现手风琴效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • js 编程笔记 无名函数

    js 编程笔记 无名函数

    无名函数,其中一个作用可能是生成新的函数对象的引用,主要是用于定义。
    2011-06-06
  • js模仿jquery的写法示例代码

    js模仿jquery的写法示例代码

    jquery的写法从事web开发的人员应该不会陌生吧,下面我们要说的是使用js模仿jquery写法的实现代码,感兴趣的朋友可以参考下哈,希望对大家有所帮助
    2013-06-06
  • 使用bootstrap validator的remote验证代码经验分享(推荐)

    使用bootstrap validator的remote验证代码经验分享(推荐)

    这篇文章主要介绍了使用bootstrap validator的remote验证器验证经验分享(推荐)的相关资料,本文介绍的非常详细,具有参考借鉴价值,需要的朋友可以参考下
    2016-09-09
  • JS给Textarea文本框添加行号的方法

    JS给Textarea文本框添加行号的方法

    这篇文章主要介绍了JS给Textarea文本框添加行号的方法,涉及javascript针对页面元素结点的读取与判定技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-08-08
  • BootStrap表单宽度设置方法

    BootStrap表单宽度设置方法

    这篇文章主要介绍了BootStrap表单宽度设置方法,仅仅是小编日常遇到问题记录,写的不好还请见谅,需要的朋友可以参考下
    2017-03-03
  • 微信小程序实现文字跑马灯

    微信小程序实现文字跑马灯

    这篇文章主要为大家详细介绍了微信小程序实现文字跑马灯,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-12-12
  • js判断某个方法是否存在实例代码

    js判断某个方法是否存在实例代码

    这篇文章主要介绍了js判断某个方法是否存在的实例代码,可用于检测js中的方法是否可用,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-01-01
  • 前端跨域问题解决及七大跨域原理详解

    前端跨域问题解决及七大跨域原理详解

    这篇文章主要为大家介绍了前端跨域问题的解决及七大跨域原理详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-02-02

最新评论