如何在两个元素之间选择所有元素

时间:2022-03-08 21:14:05

I want to select all elements between two given elements. I have html like this...

我要在两个给定的元素之间选择所有的元素。我有这样的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>

I want to select everything from the first h2 to the second h2, so I can wrap it in a div, ending up with all sections in their own wrapper.

我想要选择从第一个h2到第二个h2的所有内容,所以我可以用div包装它,最后所有的部分都在它们自己的包装中。

1 个解决方案

#1


6  

I'd suggest:

我建议:

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

Or, to perform the actual wrapping:

或进行实际包装:

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

More generically:

更一般:

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

JS Fiddle demo.

JS小提琴演示。

In order to include the starting element simply use andSelf() as part of the selector chain:

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

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

JS Fiddle demo.

JS小提琴演示。

References:

引用:

#1


6  

I'd suggest:

我建议:

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

Or, to perform the actual wrapping:

或进行实际包装:

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

More generically:

更一般:

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

JS Fiddle demo.

JS小提琴演示。

In order to include the starting element simply use andSelf() as part of the selector chain:

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

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

JS Fiddle demo.

JS小提琴演示。

References:

引用: