jQuery を使用した動的テーブル行の展開と折りたたみ
問題:
テーブルの展開または折りたたみ特定の列ヘッダーをクリックしたときの行の表示には課題が生じます。このタスクを簡素化するために、カスタム CSS クラスを使用して各ヘッダー内の行を区別できます。ただし、複数のヘッダーに対して複数の CSS クラスを管理するのは面倒になる可能性があります。
解決策:
複数の CSS クラスを追跡する複雑さを避けるために、別のアプローチでは nextUntil( )jQueryのメソッド。このメソッドは、次のヘッダー行が見つかるまで、クリックされたヘッダー行に続くすべての行を取得します。
コード スニペット:
<code class="javascript">$('.header').click(function(){ $(this).nextUntil('tr.header').slideToggle(1000); });</code>
HTML構造:
<code class="html"><table border="0"> <tr class="header"> <td colspan="2">Header</td> </tr> <tr> <td>data</td> <td>data</td> </tr> <tr> <td>data</td> <td>data</td> </tr> </table></code>
例:
この例では、ヘッダー行にクラス「header」が割り当てられています。ヘッダー行をクリックすると、slideToggle() メソッドを使用して、そのすぐ下の行の非表示と表示が切り替わります。
追加機能:
<code class="javascript">$('.header').click(function(){ $(this).find('span').text(function(_, value){return value=='-'?'+':'-'}); $(this).nextUntil('tr.header').slideToggle(100); });</code>
<code class="javascript">$(this).nextUntil('tr.header').slideToggle(100).promise().done(function () { $this.find('span').text(function (_, value) { return value == '-' ? '+' : '-' }); });</code>
<code class="css">.header .sign:after{ content:"+"; display:inline-block; } .header.expand .sign:after{ content:"-"; }</code>
<code class="javascript">$(this).toggleClass('expand').nextUntil('tr.header').slideToggle(100);</code>
以上がjQuery を使用してテーブルの行を動的に展開したり折りたたんだりする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。