5

特定の 2 つの要素の間のすべての要素を選択したい。私はこのような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最初から 2 番目までのすべてを選択したいh2ので、それを でラップし、最終的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 に答える