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

如何在重复的父div中为每个父元素包裹指定的两个a标签?

解决每个.item容器内单独包裹指定a标签的问题

你当前的代码$('.item .link-b, .item .link-c').wrapAll('<div class="wrapped" />')会把所有匹配的.link-b和.link-c标签都移动到第一个.item容器里的同一个包裹div中——这是因为wrapAll()方法会将所有选中元素包裹进单个容器,并且会把它们统一移到第一个选中元素的位置。

要实现每个.item容器内单独包裹这两个a标签的需求,需要遍历每个.item,在单个容器内部执行包裹操作:

jQuery 解决方案

$('.item').each(function() {
  // 在当前.item容器内查找目标a标签,再执行wrapAll
  $(this).find('.link-b, .link-c').wrapAll('<div class="wrapped"></div>');
});

原生JavaScript 解决方案

如果不想依赖jQuery,也可以用原生JS实现:

// 遍历所有.item容器
document.querySelectorAll('.item').forEach(item => {
  // 获取当前容器内的目标a标签
  const targetLinks = item.querySelectorAll('.link-b, .link-c');
  if (targetLinks.length === 0) return;

  // 创建包裹div
  const wrapper = document.createElement('div');
  wrapper.classList.add('wrapped');

  // 将目标a标签逐个移入包裹div
  targetLinks.forEach(link => wrapper.appendChild(link));

  // 把包裹div插入到第一个目标标签原来的位置
  targetLinks[0].parentNode.insertBefore(wrapper, targetLinks[0]);
});

执行以上代码后,每个.item内的.link-b和.link-c都会被单独包裹在属于自己的.wrapped div中,完全符合你期望的HTML结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 21:33:10