5

我想选择两个给定元素之间的所有元素。我有这样的html...

<h2>This is firsty</h2>
<p>Some para</p>
<ul>
  <li>list items</li>
  <li>list items</li>
  <li>list items</li>
  <li>list items</li>
  <li>list items</li>
</ul>
<h2>Secondy</h2>
<p>More text</p>

我想选择从 firsth2到 second的所有内容h2,所以我可以将它包装在 a 中div,最后将所有部分都放在它们自己的包装器中。

4

1 回答 1

6

我建议:

var elems = $('h2:first').nextUntil('h2');

或者,要执行实际的包装:

$('h2:first').nextUntil('h2').wrapAll('<div />');

更一般地说:

$('h2').each(
    function(i,e) {
        $(this)
            .nextUntil(this.tagName)
            .wrapAll('<div />');
    });​

JS 小提琴演示

为了包含起始元素,只需将andSelf()其用作选择器链的一部分:

$('h2:first').nextUntil('h2').andSelf().wrapAll('<div />');

JS 小提琴演示

参考:

于 2012-10-09T07:26:23.563 回答