原生JS实现jQuery的append与insertBefore功能
作者:小圆点时间:2026-10-25 02:08:07浏览:380
本文介绍如何使用原生JavaScript模拟jQuery的append功能,通过DocumentFragment和innerHTML解析HTML字符串并插入节点。同时详解insertAdjacentHTML方法的四种位置参数,对比两种实现方式的兼容性与适用场景,帮助开发者在不依赖库的情况下高效完成DOM操作。
展示代码示例
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>
JavaScript逻辑
let app = document.getElementById('app');
let child = `<div class="child">down</div>`;
app.appendHTML(child);
运行效果

补充说明
此外,若需实现向上插入操作,仅需将代码中的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在setTimeout或Ajax回调中打开新标签页失败怎么处理
2026-11-05 15:50:12
JS直播协议选型:HLS、FLV与WebRTC的延迟与兼容性对比
2026-11-05 12:16:14
JS实现回到顶部:scrollTop赋值与浏览器兼容性处理
2026-11-04 23:43:35
JS使用classList动态添加、移除和切换CSS类名
2026-11-04 23:40:58
在 D3.js 中实现平滑过渡动画的技巧
2026-11-03 23:46:09
