- ベストアンサー
DHTMLでテーブルの行の表示・非表示を切り替える。
こんにちは。 WEBアプリケーションのモックアップを作成しています。 自身はJava屋ですが、DHTMLに明るくないため、苦戦しています。 同一画面内のリンクがクリックされた場合に・・・ テーブルの行の表示、非表示を切り替えたいのです。 <!-- ========================= --> <!-- テーブル1 --> <table border="1"> <tr> <td>ヘッダ1</td> <td>ヘッダ2</td> </tr> <!-- ☆☆☆ ここから ☆☆☆ --> <tr> <td>111</td> <td>aaa</td> </tr> <tr> <td>222</td> <td>bbb</td> </tr> <!-- ☆☆☆ ここまで消したい ☆☆☆ --> </table> <!-- テーブル2 --> <table border="1"> <tr> <td>ヘッダA</td> <td>ヘッダB</td> </tr> <tr> <td>あああ</td> <td>いいい</td> </tr> </table> <!-- ========================= --> <tr>タグを<div>タグで囲んで、styleでhidden、visibleを切り替えようと考えましたが、<tr>に<div>タグが使えない事を知りました。 そこで、テーブル1を大きくテーブルで囲み、ヘッダとボディ部をセルに入れて、セルの表示・非表示を切り替えました。 これは上手くいったのですが、非表示にした場合、テーブル2との間は詰まるようにしたいのですが、もともと表示されていた分のスペースが出来てしまいました。 あまり、ロジックを組み込まずに作ろうと考えているのですが、上手い方法が思いつきません。 何か良い方法がありましたら、ご教授願います。 ターゲットのブラウザは… IE5.5~IE7 です。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
<!-- ☆☆☆ ここから ☆☆☆ --> <tr id=a1> <td>111</td> <td>aaa</td> </tr> <tr id=a2> <td>222</td> <td>bbb</td> </tr> <!-- ☆☆☆ ここまで消したい ☆☆☆ --> 消す時は document.getElementById('a1').styla.display = 'none'; document.getElementById('a2').styla.display = 'none'; ってな感じ。
その他の回答 (1)
- fire--
- ベストアンサー率49% (146/293)
innerHTMLで書換えをしてはどうでしょう。 http://www.tohoho-web.com/js/element.htm
お礼
ありがとうございます。 innnerHTMLで全部のテーブルを書き換えることも考えたのですが、HTMLソースの可読性が悪くなるかと思い、少し躊躇していました。 しかし、実際に書いてみると、思ったよりも読みづらくは無いので、参考にさせて頂きたいと思います。
お礼
trの属性で制御できたんですね。 レコードが多かった場合はScript側でループするような処理で対応できそうなので、大変、参考になりました。