2012-04-16 11 views
4

jqueryを使用して表の行を表示/非表示しようとしています。最初の2行は動作します。 3行目にすべてのデータが表示されません。Jquery複数の表の行を表示/非表示

Jfiddle:jQueryの表示/非表示機能表 メイン データ

<tr class="main"> 
    <td> 
    <a href="#" class="main">12345</a> 
    </td> 
</tr> 

<tr class = "data"> 
    <td> 
    </td> 
    <td> 
     11111 
    </td> 
</tr> 

<tr class="main"> 
    <td> 
     <a href="#" class="main">12345</a> 
    </td> 
</tr> 

<tr class = "data"> 
    <td> 
    </td> 
    <td> 
     11111 
    </td> 
</tr> 

<tr class="main"> 
    <td> 
     <a href="#" class="main">12345</a> 
    </td> 
</tr> 

<tr class = "data"> 
    <td> 
    </td> 
    <td> 
     11111 
    </td> 
</tr> 

<tr class = "data"> 
    <td> 
    </td> 
    <td> 
     22222 
    </td> 
</tr> 
<tr class = "data"> 
    <td> 
    </td> 
    <td> 
     33333 
    </td> 
</tr> 
<tr class = "data"> 
    <td> 
    </td> 
    <td> 
     44444 
    </td> 
</tr> 

JavaScriptのためのhttp://jsfiddle.net/vcolmenar/wG8qf/1/

HTMLデータ

$(document).ready(function() { 
//Hide table rows with class 'min', but appear when clicked. 
$(".data").hide(); 
$(".main").click(function() { 
    $(this).parent().parent().next(".data").toggle("fast"); 
}); 
}); 
+0

ない 'あなたの第3主 – SpYk3HH

+0

スクラッチ後.data'そのあなたはちょうどそれを改訂したように見えます、そして、それは働いているように見えます、問題は何ですか? – SpYk3HH

+0

@ SpYk3HH最後のa.mainは最初の兄弟tr.dataだけを示しています。私は彼がtr.mainエントリの間にすべてのtr.data行を望んでいると思います。 – DefyGravity

答えて

8

CSS

tr.data {表示:なし;}

ジャバスクリプト

$(function(){ 
    $("#main-data-table","body").on({'click':function(event){ 
    event.preventDefault(); 
    $(this).closest("tr.main").nextUntil("tr.main").toggle("fast"); 
    }}, 
    "a.main",null); 
}); 

HTMLある

<table id="main-data-table"> 
<thead><tr> 
    <th>Main</th> 
    <th>Data</th> 
</tr></thead> 
<tfoot></tfoot> 
<tbody> 
<tr class="main"> 
     <td> 
     <a href="#" class="main">12345</a> 
     </td> 
    </tr> 

    <tr class = "data"> 
     <td> 
     </td> 
     <td> 
      11111 
     </td> 
    </tr> 

    <tr class="main"> 
     <td> 
      <a href="#" class="main">12345</a> 
     </td> 
    </tr> 

    <tr class = "data"> 
     <td> 
     </td> 
     <td> 
      11111 
     </td> 
    </tr> 

    <tr class="main"> 
     <td> 
      <a href="#" class="main">12345</a> 
     </td> 
    </tr> 

    <tr class = "data"> 
     <td> 
     </td> 
     <td> 
      11111 
     </td> 
    </tr> 

    <tr class = "data"> 
     <td> 
     </td> 
     <td> 
      22222 
     </td> 
    </tr> 
    <tr class = "data"> 
     <td> 
     </td> 
     <td> 
      33333 
     </td> 
    </tr> 
    <tr class = "data"> 
     <td> 
     </td> 
     <td> 
      44444 
     </td> 
    </tr> 
</tbody> 
</table> 
+1

[fiddle](http://jsfiddle.net/wG8qf/7/ ) – DefyGravity

+0

ありがとう、それは素晴らしい仕事! – squeezethejuicebox2

+0

@DefyGravity Great man –