2012-03-14 6 views
0

私は次のHTMLスニペットを持っています。2 h2タグ間のすべてを非表示にしますか?

<h2>Headline 1</h2> 
<p>Lorem ipsum bla bla</p> 
<p>Lorem ipsum bla bla</p> 
<p>Lorem ipsum bla bla</p> 

<h2>Headline 2</h2> 
<p>Lorem ipsum bla bla</p> 

<h2>Headline 3</h2> 
<p>Lorem ipsum bla bla</p> 
<p>Lorem ipsum bla bla</p> 

どういうわけか、jqueryを介して各ブロックをターゲットにしたいので、divをarroundに追加することができます。 「ブロック」とは、次のh2開始タグの前に、h2開始タグと最後のpタグの間のすべてのコードを意味します。セクション内の最後のh2タグは、最後のpタグをとるだけです。

どのように私はこれを行うのが最適ですか?

+0

参照:http://stackoverflow.com/questions/863356/jquery-how-to-select-from-here-until-the-next-h2 –

答えて

3

試してみてください。

$('h2').each(function() { 
    $(this).nextUntil('h2').add(this).wrapAll('<div class="foo">'); 
});​ 

http://jsfiddle.net/RUKDj/

0

h2の間のすべての要素を非表示にしたい場合は、.nextUntilを使用してみてください。

DEMO

$('h2').nextUntil('h2').hide(); 

あなたはどこでも、B/W 2 h2をブロックしたい場合は、あなたが使用することができ、

DEMO

$('h2').each (function() { 
    $(this).nextUntil('h2').wrapAll('<div class="hidden">'); 
}); 
関連する問題