激凹みから立ち直る方法

質問ナンバー2612958について追加質問なのですが、
一つだけレイヤーを表示させたい場合はどのように記述すれば良いのでしょうか?
「view(Array(1))」としたところ、うまく動作しませんでした。

また、全然別件かもしれないのですが、同時に別の動作もさせることはできないでしょうか?
現在は、CSSの表示非表示を切り替えるだけですが、同じタイミングで
別のレイヤーの背景色を変える必要が出てしまいました。
「document.getElementById("test"+i).style.backgroundColor="#333333";」
などとすることで、単体では動くのですが、表示非表示といっしょに
動かしたいのです。よろしくお願いします。

A 回答 (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"などいくつかのやり方が
ありそうです
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/12/25 17:36

<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ならあるけど表示しないだけとなり、サンプルと同じような表示になります。
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/12/20 13:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!