
複数のコンテンツをボタンクリックにて表示・非表示にしたいのですが、うまくいきません。
なんとか、2つまではわかったのですが、3つまで表示すると3つ目が非表示になってくれません。
最終的には5つくらいを下記のスクリプトで行いたいのですが、どうすれば、複数のIDを対応させることができますか?
●例えば、test1を押した際、test2と3は非表示としたいです。
<script language="JavaScript" type="text/JavaScript">
<!--
function ChDsp2(strShow,strHidden){
var obj='';
obj=document.all && document.all(strShow) || document.getElementById && document.getElementById(strShow);
obj.style.display = "block";
obj=document.all && document.all(strHidden) || document.getElementById && document.getElementById(strHidden);
obj.style.display = "none";
}
//-->
</script>
<a href="javascript:ChDsp2('text1','text2');">1を表示</a>
<a href="javascript:ChDsp2('text2','text1');">2を表示</a>
<a href="javascript:ChDsp2('text3','text1');">3を表示</a>
<span id="text1" style="display:block;">111111</span>
<span id="text2" style="display:none;">222222</span>
<span id="text3" style="display:none;">333333</span>
どなたか教えてください。お願いします。
No.1ベストアンサー
- 回答日時:
きれいに消しこみができていませんね。
こういうのはグルーピングした方がすっきりします。
こんな感じでどうでしょ?
<style>
.hide{display:none;}
.r{ background-Color:red;}
.g{ background-Color:green;}
.b{ background-Color:blue;}
</style>
<script>
function ChDsp2(strShow,classHidden){
var tags=document.getElementsByTagName("div");
for(var i=0;i<tags.length;i++){
if(tags[i].className.match('textALL')){
tags[i].className=tags[i].className.replace(/hide/,"").replace(/^\s+|\s+$/,"");
if(tags[i]!=document.getElementById(strShow)) tags[i].className+=' hide';
}
}
return false;
}
</script>
<a href="#" onclick="return ChDsp2('text1','textALL');">1を表示</a>
<a href="#" onclick="return ChDsp2('text2','textALL');">2を表示</a>
<a href="#" onclick="return ChDsp2('text3','textALL');">3を表示</a>
<div id="text1" class="textALL r">111111</div>
<div id="text2" class="textALL g hide">222222</div>
<div id="text3" class="textALL b hide">333333</div>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
removeEventListenerについて
-
テキストエリア内の一部の文字...
-
javascriptのアラートを画面の...
-
jQueryのアコーディオンメニュ...
-
CSSで背景を下までのばすには?
-
色の変更
-
Ctrl+F(検索)の窓を出したいの...
-
プログラミングでのビンゴマシ...
-
スクロール可能なチェックボックス
-
YouTubeをブログに貼る時、1つ...
-
jQueryで表示している所をsubm...
-
フッター上部に謎の隙間
-
「jQuery」アコーディオンメニ...
-
画像と文字を同時に切り替えたい
-
embed要素のsrc属性の値を変更...
-
CSSでフローとした際の親要素の...
-
【CSS】floatで左右に並べた...
-
中身がフロートしかなくてもボ...
-
JSPでの画像ファイル表示
-
CSSでdivのheightを動的に
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MAX関数を使ってからLEFT JOIN...
-
javascriptテキストBOX色を元に...
-
iframe内のリンクが飛ばないの...
-
javascriptでpostした値が取得...
-
タブで開いてさらにタブ内をア...
-
【HP作成】クリックすると下...
-
jQueryでクリックされた要素のi...
-
指定したパスが現URLに含まれて...
-
プルダウンとチェックボックス...
-
createElementで作成した要素を...
-
IFRAMEの表示/非表示を切り替え...
-
クリックで色変更後に既に変更...
-
jQueryで同じid属性が複数あっ...
-
表示・非表示のスクリプトで、...
-
removeEventListenerについて
-
removeAttribute()メソッドで削...
-
クリックするとテーブルの列の...
-
背景色を透明化
-
テキストエリア内の一部の文字...
-
バッチファイルでカウントアッ...
おすすめ情報