You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用jQuery/原生JS将多个同class DIV分组包裹到同一DIV中

同class元素批量包裹统一容器实现方案

不需要修改原有HTML代码,直接执行JS逻辑即可完成需求,你可以根据项目情况选择纯原生JS或者jQuery两种实现方式。


原生JavaScript实现

// 创建新的包裹容器
const wrapper = document.createElement('div');
wrapper.className = 'new-class';

// 获取所有class为a的目标div,转为静态数组避免DOM变动导致的节点集合异常
const targetDivs = Array.from(document.querySelectorAll('div.a'));

// 将包裹容器插入到第一个目标div的原有位置
targetDivs[0].parentNode.insertBefore(wrapper, targetDivs[0]);

// 把所有目标div依次移入新容器内
targetDivs.forEach(div => wrapper.appendChild(div));

逻辑说明:

  • 先将获取到的节点集合转为静态数组,是因为原生返回的NodeList是动态集合,移动DOM节点时集合内容会实时变化,很容易出现元素遗漏问题,转成静态数组后可以规避这个bug
  • 调用appendChild移动已存在的DOM节点时,浏览器会自动把节点从原有位置剪切到新位置,不需要额外手动删除原节点

jQuery实现

如果项目已经引入jQuery,可以直接用内置的wrapAll方法,代码更简洁:

$('div.a').wrapAll('<div class="new-class"></div>');

wrapAll是jQuery专门提供的批量包裹方法,会自动把所有匹配到的元素归集到第一个匹配元素的位置,外层统一包裹指定的DOM结构,不会破坏元素内部的原有内容。

两种方式执行完成后,生成的DOM结构和预期效果完全一致。


内容的提问来源于stack exchange,提问作者LENTA DRINK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.02 09:54:29