• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:表示レイヤーの切り替え追加質問)

表示レイヤーの切り替え追加質問

このQ&Aのポイント
  • 質問ナンバー2612958について追加質問なのですが、一つだけレイヤーを表示させたい場合はどのように記述すれば良いのでしょうか?
  • また、全然別件かもしれないのですが、同時に別の動作もさせることはできないでしょうか?現在は、CSSの表示非表示を切り替えるだけですが、同じタイミングで別のレイヤーの背景色を変える必要が出てしまいました。
  • 「view(Array(1))」としたところ、うまく動作しませんでした。「document.getElementById("test"+i).style.backgroundColor="#333333";」などとすることで、単体では動くのですが、表示非表示といっしょに動かしたいのです。よろしくお願いします。

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

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

ああ・・・arrayって単項で配列はつくれないんですね。 やってみると確かにそうみたいです。 こんな感じでarrayの型をチェックして分岐をいれてみては いかがでしょうか? <script language="javascript"> function view(array){ for(var i=1;i<=10;i++){ document.getElementById("test"+i).style.display="none"; } if(typeof array=="number"){ document.getElementById("test"+array).style.display="block"; }else{ for(i in array){ document.getElementById("test"+array[i]).style.display="block"; } } } </script> チェックの仕方としては typeof array.length=="undefined"などいくつかのやり方が ありそうです

ebifly
質問者

お礼

お礼が遅れてすみません。 メールの調子が悪かったらしく、ご回答いただいたことに気づきませんでした。 そのため、今回はダミーのIDを作って対処しました。 今後同じケースが出たら参考にさせていただきます。 ありがとうございました。

その他の回答 (1)

noname#23734
noname#23734
回答No.1

<form> <input type=radio name=r onclick="show('lay1')" checked>A <input type=radio name=r onclick="show('lay2')">B <input type=radio name=r onclick="show('lay3')">C </form> <div id=lay1> test0 4 5の要素 </div> <div id=lay2 style=visibility:hidden> test1 2 3の要素 </div> <div id=lay3 style=visibility:hidden> その他の要素 </div> </body> </html> 考えるのが面倒ですから単純にサンプルを利用してそれを上のように変えれば良いじゃないですか。 visibilityをdispalyに変更すればnoneの要素は無いものとして次の要素が並びます。 visibilityならあるけど表示しないだけとなり、サンプルと同じような表示になります。

ebifly
質問者

お礼

ご回答ありがとうございます。 レイヤーをまとめることは構造上考えていません。前の質問のように複数のレイヤーを操作するのですが、 たまに一つのレイヤーの時もあるということです。 よろしくお願いします。

関連するQ&A