当前位置:首页 > JavaScript

js实现jquerywrap

2026-01-31 23:56:57JavaScript

使用原生JavaScript实现jQuery的wrap功能

jQuery的wrap()方法允许开发者用指定的HTML结构包裹匹配的元素。以下是几种原生JavaScript实现方式:

js实现jquerywrap

方法一:使用parentNode和insertBefore

function wrap(element, wrapper) {
    const parent = element.parentNode;
    const nextSibling = element.nextSibling;
    parent.insertBefore(wrapper, element);
    wrapper.appendChild(element);
}

方法二:处理多个元素的情况

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

    const firstElement = elements[0];
    const parent = firstElement.parentNode;

    parent.insertBefore(wrapper, firstElement);

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

方法三:支持字符串形式的wrapper参数

function wrapWithSelector(element, wrapper) {
    const temp = document.createElement('div');
    temp.innerHTML = wrapper;
    const realWrapper = temp.firstElementChild;

    element.parentNode.insertBefore(realWrapper, element);
    realWrapper.appendChild(element);

    return realWrapper;
}

方法四:完整实现(支持单元素和集合)

function wrap(elements, wrapper) {
    if (typeof wrapper === 'string') {
        const temp = document.createElement('div');
        temp.innerHTML = wrapper;
        wrapper = temp.firstElementChild;
    }

    if (elements.length) {
        Array.from(elements).forEach(el => {
            el.parentNode.insertBefore(wrapper.cloneNode(true), el)
                .appendChild(el);
        });
    } else {
        elements.parentNode.insertBefore(wrapper, elements);
        wrapper.appendChild(elements);
    }
}

使用示例

// 包裹单个元素
const div = document.querySelector('.target');
wrap(div, '<div class="wrapper"></div>');

// 包裹多个元素
const spans = document.querySelectorAll('span');
wrapAll(spans, document.createElement('div'));

注意事项

  • 这些实现不包含jQuery wrap()的所有功能,但覆盖了主要用例
  • 处理动态创建的wrapper元素时要注意内存泄漏问题
  • 对于复杂的DOM操作,可能需要添加额外的错误处理
  • 性能考虑:批量操作DOM比多次单独操作更高效

标签: jsjquerywrap
分享给朋友:

相关文章

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 或直接使用 window.location 实现页面跳转,适用于普通跳转或带参数的 URL。 // 方…

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 实现页面跳转,这是最常用的方法。 window.location.href = 'https://…

js实现

js实现

实现 JavaScript 功能的方法 在 JavaScript 中实现特定功能通常涉及多个步骤。以下是常见的实现方法: 基础语法和变量声明 使用 let 或 const 声明变量: let co…

js实现全选

js实现全选

实现全选功能的方法 在JavaScript中实现全选功能通常涉及监听全选复选框的点击事件,并根据其状态控制其他复选框的选中状态。以下是几种常见的实现方式: 基础DOM操作实现 通过获取所有目标复选框…

js实现图片放大缩小

js实现图片放大缩小

实现图片放大缩小的基础方法 使用CSS的transform: scale()属性可以快速实现图片的放大缩小效果。通过JavaScript动态修改该属性值: const img = document.…

js实现验证

js实现验证

验证表单输入 使用JavaScript验证表单输入是常见的需求。可以通过监听表单提交事件,检查输入字段是否符合要求。 document.getElementById('myForm').addEve…