如何使用 jQuery 包装 1-2 个或更多相同的 class,而不用中间的不同 class 包装它?

How to wrap 1-2 or more of the same class using jQuery without wrapping it with a different class in between?

为了让 I 在视觉上易于理解,我想要这个:

<div class="wrap">
  <input type="hidden" />
  <input type="hidden" />
  <div class="a">content</div>
  <input type="hidden" />
  <input type="hidden" />
  <input type="hidden" />
  <div class="a"></div>
  <input type="hidden" />
  <div class="a"></div>
  <input type="hidden" />
  <input type="hidden" />
  <div class="bee"></div>
  <input type="hidden" />
  <input type="hidden" />
  <div class="a"></div>
  <input type="hidden" />
  <input type="hidden" />
  <div class="cee"></div>
  <input type="hidden" />
  <input type="hidden" />
  <input type="hidden" />
  <div class="a"></div>
  <input type="hidden" />
  <input type="hidden" />
  <input type="hidden" />
  <input type="hidden" />
  <div class="a"></div>
</div>

变成这样:

<div class="wrap">
  <div class="JQueryWrap">
    <input type="hidden" />
    <input type="hidden" />
    <div class="a">content</div>
    <input type="hidden" />
    <input type="hidden" />
    <input type="hidden" />
    <div class="a"></div>
    <input type="hidden" />
    <div class="a"></div>
  </div>
  <input type="hidden" />
  <input type="hidden" />
  <div class="bee"></div>
  <div class="JQueryWrap">
    <input type="hidden" />
    <input type="hidden" />
    <div class="a"></div>
  </div>
  <input type="hidden" />
  <input type="hidden" />
  <div class="cee"></div>
  <div class="JQueryWrap">
    <input type="hidden" />
    <input type="hidden" />
    <input type="hidden" />
    <div class="a"></div>
    <input type="hidden" />
    <input type="hidden" />
    <input type="hidden" />
    <input type="hidden" />
    <div class="a"></div>
  </div>
</div>

包装内的 HTML 是自动生成的,所以我必须走 jQuery 的路径。

.wrap class.

中的每个兄弟节点上方总是有 1 个或多个隐藏类型输入

您可以找到所有 .a 元素,其前一个兄弟元素不是 .a 元素(即每个块的开头),然后找到所有连续的 .a 兄弟元素并调用 wrapAll () 赞

$('.wrap .a').not('.a + .a').each(function () {
    $(this).nextUntil(':not(.a)').addBack().wrapAll('<div class="JQueryWrap"/>')
})

演示:Fiddle