2012-10-09 196 views
3

我想選擇兩個給定元素之間的所有元素。我有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,在自己的包裝所有部分結束了。

回答

5

我建議:

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

參考文獻:

+0

這很棒。在包裝之前,有沒有什麼辦法在節中包含'h2'? –

+0

實際上得到它:'$ el = $(「h2」)。eq(0); $ el.nextUntil(「h2」)。add($ el)' –

+0

是的,這也可以。 =) –

相關問題