Jqueryを使用してHTMLでTableの行を表示/非表示させる方法。あまり使う機会はないかもしれませんが、見つけるまでにだいぶ時間がかかったので覚え書きとして残しておきます。

サンプルDEMO

See the Pen
JS-table_row_on-off
by AGUA Web (@AGUA)
on CodePen.

Javascriptファイル

今回は外部ファイルで「trshow.js」としてあります。

<script>
function _cb() {
    try {
        $(".row").css("display", "table-row");
    }
    catch(e) {}
}

$(document).ready(function() {

    var speed = 300;
    $("#radio01").click(function() {
        $(".cell01").slideDown(speed);
        $(".cell02").slideDown(speed);
        $(".row").slideDown(speed, _cb());
    });
    $("#radio02").click(function() {
        $(".cell01").slideUp(speed);
        $(".cell02").slideUp(speed);
        setTimeout(function() { $(".row").hide(); }, speed);
    });

});
</script>

HTMLファイル

ヘッダにjquery本体と今回のjqueryファイルと上記trshow.jsファイルを読み込みます。

<script type="text/javascript" src="https://code.jquery.com/jquery-1.11.1.min.js"</script>
<script type="text/javascript" src="外部ファイルを保存したフォルダ/trshow.js"</script>

<input>タイプのラジオボタンで表示/非表示を制御します。
tableタグで非表示にしたい<tr>タグに

class=”row”
style=”display:none;”

を追加します。

※style=”display:none;”をつけないと初期は表示状態になります。

<table>
  <thead>
    <tr>
      <th>  タイトル1</th>
      <th>  タイトル2</th>
      <th>  タイトル3</th>
    </tr>
    <tr>
      <th  colspan="3">
        <input  type="radio"  id="radio02"  name="sample_radios01"  checked="checked"  />  非表示
        <input  type="radio"  id="radio01"  name="sample_radios01"  />  表示</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>  項目1</td>
      <td>  項目2</td>
      <td>  項目3</td>
    </tr>
    <tr  class="row"  style="display:none;">
      <td  colspan="5">
        <p>  非表示の行</p>
      </td>
    </tr>
    <tr>
      <td>  項目1</td>
      <td>  項目2</td>
      <td>  項目3</td>
    </tr>
    <tr  class="row"  style="display:none;">
      <td  colspan="5">
        <p>  非表示の行</p>
      </td>
    </tr>
    <tr>
      <td>  項目1</td>
      <td>  項目2</td>
      <td>  項目3</td>
    </tr>
    <tr  class="row"  style="display:none;">
      <td  colspan="5">
        <p>  非表示の行</p>
      </td>
    </tr>
    <tr>
      <td>  項目1</td>
      <td>  項目2</td>
      <td>  項目3</td>
    </tr>
    <tr  class="row"  style="display:none;">
      <td  colspan="5">
        <p>  非表示の行</p>
      </td>
    </tr>
  </tbody>
</table>

CSSファイル

cssはtableに対して任意でご変更ください。

table {
  width: 100%;
  border: 1px solid #808080;
  border-collapse: collapse;
}
table th {
  border: 1px solid #444;
  background: #888;
  color: #fff;
  padding: 10px;
}
table td {
  padding: 10px;
  border: 1px solid #808080;
}

関連記事: