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

时间:2012-10-09 07:25:12

标签: javascript jquery

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

我想选择从第一个h2到第二个h2的所有内容,因此我可以将其包装在div中,最后包含在自己的包装中的所有部分。

1 个答案:

答案 0 :(得分: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 Fiddle demo

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

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

JS Fiddle demo

参考文献: