用DIV包装HTML直到下一个H3

reb*_*ion 4 html javascript jquery wrapall

我有以下HTML结构:

$('#subgroup a').nextUntil('h3').wrapAll('<div></div>');
Run Code Online (Sandbox Code Playgroud)

我有这种扁平结构,因为我想使用jQuery UI的手风琴效果.我想在a元素之间包装所有h3元素.

没试好我试过以下内容:

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="subgroup">
  <h3>Group name #1</h3>
  <a href="#">Link #1</a>
  <a href="#">Link #2</a>
  <h3>Group name #2</h3>
  <a href="#">Link #3</a>
  <a href="#">Link #4</a>
</div>
Run Code Online (Sandbox Code Playgroud)

但这导致一些a元素消失.我尝试了很多选择器,但没有一个能够工作.我这样做了吗?

Mat*_*son 7

像这样的方法应该有效,尽管我猜测有很多不同的方法可以做到这一点:

$('#subgroup h3').each(function() {
    $(this).nextUntil('h3').wrapAll('<div></div>');
});
Run Code Online (Sandbox Code Playgroud)