2014年3月13日木曜日

PCソフトウェア>HTMLで表の行を、非表示/表示する場合

ページにtableを表示する場合、大きくなり過ぎると、スクロールしなければならず、非常に見にくくなります。あまり、必要でない部分を非表示にすれば、扱いやすいページになると考えられ、web上色々捜してみた結果、これが一番良いと思われます。ただし、セルの結合をしている表など、複雑なものに関しては、当然のことながら、うまく動作しません。

[trタグにidをセットする方法]

 注意点

1行のみ表示/非表示する場合は便利。

 tableの表記方法

非表示にしたい<tr>タグにidをつける

<table>
 <tr id="b1">/*------->ここが消える*/
  <td>1</td>
 </tr>
 <tr>
  <td>2</td>
 </tr>
</table>

[tbodyにidをセットする方法]

 注意点

領域をまとめて指定できるので、1つの関数でコントロールできて便利。
<tbody>はいくつあっても良いので、複数書き込み、それぞれにidをつけてコントロールできる。
<thead>、<tfoot>はあってもなくてもよい。
セルが結合してあっても、まとめて<tbody>でくくれれる領域なら、使用可能。

tableの表記方法

非表示にしたい部分を<tbody>タグで囲み、idをつける

<table>
 <tr>
  <td>1</td>
 </tr>
  <tbody id="b1">/*------->ここが消える*/
 <tr>
  <td>2</td>
 </tr>
  </tbody>
</table>

[使用方法]

 trでも、tbodyでも、呼び出し方法は一緒。

 ボタンに機能を設定する場合

<button onclick="document.getElementById('b1').style.display = 'none'";>ここに表示する文字</button> /*非表示*/
<button onclick="document.getElementById('b1').style.display = '';">ここに表示する文字</button>   /*表示*/

 関数として、JavaScriptで記載する場合


function hide(a){
 document.getElementById(a).style.display = 'none'; /*非表示*/
}

function show(a){
 document.getElementById(a).style.display = ''; /*表示*/
}

HTML側の書き方

spanでなくても、<a>などでもかまわない。

<span onclick="hide('b1')";>ここに表示する文字</span>
<span onclick="show('b1')";>ここに表示する文字</span>

 注意点

※document.getElementByIdを使用するが、この通り(大文字小文字)に入力しないとエラーになる。
※onclickに複数の関数を指定する場合は、間にセミコロン(;)を入れる。これにより、複数のIDを同時に操作できる。
※document.getElementsByClassName('b1')という方法もあるらしいが、IE8以下では使用できない。他のブラウザやIE9~は可能らしい?
※onclickの他に、onload,onmoseover,onmouseoutなどが使用できる。

 その他使用例

HTMLページ読み込み時、onloadを<body>タグ内に記載する。
<body onload = "document.getElementById('b1').style.display = 'none';">

0 件のコメント:

コメントを投稿