• ベストアンサー

firefoxで表の表示切替操作の異常

以下のコードはIE ver.7では正常に作動しますが、firefoxで表示/非表示を繰り返すとおかしくなり表がどんどん広がっていきます。 どこが間違っているのでしょうか。 firefoxでも正常に作動する方法をよろしくご教示お願いします。 ================================================= <html><head> <script language="javascript"><!-- [CDATA[ window.onload = function(){ var body = document.getElementById("body"); var toggle = document.getElementById("toggle"); toggle.onclick = function(){ if (body.style.display == "none") { body.style.display = "block"; } else { body.style.display = "none"; } return false; } } //]] --></script><noscript></noscript> </head><body> <table border="1" ><tbody> <tr><td>[<a href="#" id="toggle">表示切替</a>]</td></tr> <tr id="body"><td>こんにちわ</td></tr> </tbody> </table> </body></html> =================================================

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

styleをいじるならクラスを変更したほうがはやいかも。 クラスにいろいろな属性かきこめるしね <html> <head> <style> .hide{ display:none; } </style> <script language="javascript"> window.onload = function(){ var toggle = document.getElementById("toggle"); toggle.onclick = function(){ var body = document.getElementById("body"); body.className=body.className=="hide"?"":"hide"; return false; } } </script> </head> <body> <table border="1" > <tbody> <tr><td>[<a href="#" id="toggle">表示切替</a>]</td></tr> <tr id="body"><td>こんにちわ</td></tr> </tbody> </table> </body> </html>

kahata
質問者

お礼

ありがとうございました。この方法でIE,Firefoxとも正常に作動しました。

その他の回答 (1)

回答No.1

styleプロパティが気に入らず色々書いていたらModifications are not allowedといわれて戻せなくなったのでとりあえず,どこを直せばいいのかの指摘だけ。 tr要素のdisplayプロパティはblockではなくtable-rowです。

kahata
質問者

お礼

ありがとうございます。この方法だとFirefoxで正常に作動しますが、IEでエラーになりました。ブラウザの場合別けが必要かもしれません。

関連するQ&A