如何使用jQuery包装1-2个或更多相同的类而不用其他类包装它?

问题描述 投票:0回答:1

为了让我在视觉上可以理解,我想要这个:

<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类的每个兄弟姐妹上面总有一个或多个隐藏类型输入。

jquery wrapper
1个回答
3
投票

你可以找到所有.a元素,其前一个兄弟不是.a元素(即每个块的开头)然后找到它的所有contiues .a兄弟姐妹和调用wrapAll()像

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

但是:ぁzxswい

© www.soinside.com 2019 - 2024. All rights reserved.