当前位置:首页 > JavaScript

js实现jquerywrap

2026-01-31 23:56:57JavaScript

js实现jquerywrap

js实现jquerywrap

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

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

方法一:使用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
分享给朋友:

相关文章

jquery.js

jquery.js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,用于简化 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它的设计宗旨是“Write Less, Do Mor…

js实现全选

js实现全选

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

js实现图片放大缩小

js实现图片放大缩小

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

js实现报表

js实现报表

使用JavaScript实现报表 在JavaScript中实现报表功能可以通过多种方式完成,常见的方法包括使用原生JavaScript、第三方库(如Chart.js、D3.js)或结合后端数据渲染。以…

js实现点击显示和隐藏

js实现点击显示和隐藏

实现点击显示和隐藏的JavaScript方法 使用classList.toggle切换类名 通过添加/移除CSS类控制元素的显示与隐藏,需提前在CSS中定义隐藏样式(如display: none)。…

js实现选题

js实现选题

实现选题功能的JavaScript方法 基础实现方案 使用数组存储选项,通过随机索引选取: const options = ['选项A', '选项B', '选项C', '选项D']; const r…