当前位置:首页 > JavaScript

js实现jquerywrap

2026-04-05 16:15:30JavaScript

使用原生 JavaScript 实现 jQuery 的 wrap 方法

jQuery 的 wrap 方法允许用户将匹配的元素包裹在指定的 HTML 结构中。以下是几种原生 JavaScript 的实现方式。

js实现jquerywrap

方法一:使用 DOM 操作

function wrap(element, wrapper) {
    const parent = element.parentNode;
    const wrappedElement = typeof wrapper === 'string' 
        ? document.createElement(wrapper) 
        : wrapper;
    parent.insertBefore(wrappedElement, element);
    wrappedElement.appendChild(element);
}

调用方式:

js实现jquerywrap

const element = document.querySelector('.target');
wrap(element, 'div'); // 包裹在 <div> 中

方法二:支持多元素和复杂结构

function wrapAll(elements, wrapper) {
    if (elements.length === 0) return;

    const firstElement = elements[0];
    const parent = firstElement.parentNode;
    const wrappedElement = typeof wrapper === 'string' 
        ? document.createElement(wrapper) 
        : wrapper.cloneNode(true);

    parent.insertBefore(wrappedElement, firstElement);

    Array.from(elements).forEach(el => {
        wrappedElement.appendChild(el);
    });
}

调用方式:

const elements = document.querySelectorAll('.target');
wrapAll(elements, '<div class="wrapper"></div>');

方法三:支持 HTML 字符串作为包裹结构

function wrapWithHTML(element, htmlString) {
    const parent = element.parentNode;
    const temp = document.createElement('div');
    temp.innerHTML = htmlString.trim();
    const wrapper = temp.firstChild;

    parent.insertBefore(wrapper, element);
    wrapper.appendChild(element);
}

调用方式:

const element = document.querySelector('.target');
wrapWithHTML(element, '<div class="wrapper"><div class="inner"></div></div>');

注意事项

  • 这些方法模拟了 jQuery 的基本 wrap 功能,但 jQuery 的实现更复杂,支持更多边界情况。
  • 对于动态生成的元素,确保 DOM 已加载完成再执行包裹操作。
  • 要完全复制 jQuery 的 wrap 功能,还需要处理更多特殊情况,如文档片段、函数参数等。

标签: jsjquerywrap
分享给朋友:

相关文章

js实现图片上传

js实现图片上传

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现图片上传功能。HTML部分需要创建一个文件选择输入框和一个用于…

js实现pdf在线预览

js实现pdf在线预览

使用PDF.js实现PDF在线预览 PDF.js是由Mozilla开发的一个开源JavaScript库,可以在网页中直接渲染PDF文件。以下是实现PDF在线预览的步骤: 引入PDF.js库 在HT…

js实现二叉树

js实现二叉树

二叉树的基本概念 二叉树是一种树形数据结构,每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树的常见操作包括插入、删除、遍历等。 二叉树的节点定义 在JavaScript中,二叉树的节点可…

js实现dh

js实现dh

JavaScript 实现 DH(Diffie-Hellman)密钥交换 Diffie-Hellman(DH)密钥交换是一种安全协议,允许双方在不安全的通信信道上建立一个共享密钥。以下是如何在 Jav…

js实现驼峰

js实现驼峰

实现驼峰命名的几种方法 使用正则表达式和字符串替换 通过正则表达式匹配字符串中的特定模式(如下划线或短横线),并将其后的字母转换为大写,同时移除分隔符。 function toCamelCase(s…

js实现目录

js实现目录

实现目录的基本思路 在JavaScript中实现目录功能通常涉及以下几个核心步骤:解析文档中的标题元素(如h1-h6),动态生成目录结构,并添加交互逻辑(如点击跳转)。以下是具体实现方法: 解析标题…