2017-05-11 5 views
0

ボタンをクリックして行を非表示にするには、javascript/jqueryのボタンdivの後に次のdivを折り返したいと思います。私はトリガーの後に複数のボタンと複数の行を持っています。divの後にdivをラップする

<div class="button"> </div> 
<div class="row"></div> 
<div class="row"></div> 
<div class="row"></div> 
<div class="row"></div> 

<div class="button"> </div> 
<div class="row"></div> 
<div class="row"></div> 
<div class="row"></div> 
<div class="row"></div> 
... 

私は

<div class="button"> </div> 
<div class="wrapper"> 
    <div class="row"></div> 
    <div class="row"></div> 
    <div class="row"></div> 
    <div class="row"></div> 
</div> 

<div class="button"> </div> 
    <div class="wrapper"> 
    <div class="row"></div> 
    <div class="row"></div> 
    <div class="row"></div> 
    <div class="row"></div> 
    </div> 

感謝を達成したいと思います!私はラップする方法を知る必要がありますそれはボタンのことは簡単です。 (うまくいけば)

+0

これは、ラッピングを必要としない - ちょうど動的.buttonに追加クラスを追加し、次を隠すCSSルールで一般的な兄弟コンビネータを使いますそれに基づいて.row要素。 '.button.hide-children〜.row {display:none; } ' – CBroe

+0

(一般的な兄弟のコンビネータは、そうすることを強く主張するならば、jQueryで囲む要素を選択するのにも役立ちます) – CBroe

+1

こんにちはCbroe - CSSソリューションをありがとうございます。ボタン。 – meck373

答えて

1

私は解決策を持っている:

$('.button').each(function() { 
     $(this).nextUntil('button').wrapAll('<div class="wrapper"></div>'); 
    }); 
+1

ダーン、そうです - 純粋なCSSを使っていると思ったほど簡単ではありませんでした。 sthに取り組んでいた。同様のラッピング(https://jsfiddle.net/u9kqh6ee/)に関して - しかしあなたよりも複雑な解決策に終わった...これまでの 'nextUntil'の存在を逃した!ありがとう! – CBroe

+0

ありがとう、しかしこれは2h :( – meck373

+0

)私たちは両方とも.nextUntil ;-)を発見して以来、ラッパーをもう一度やり直すことができました。単に '$(this).nextUntil( '。button')。 ); '直後の行の表示を切り替えるボタンクリックハンドラで... https://jsfiddle.net/u9kqh6ee/1/ – CBroe

関連する問題