• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:プロパティのチェンジ)

JavaScriptとCSSを使用してタブでの切り替えパネルを作成する方法

このQ&Aのポイント
  • JavaScriptとCSSを使用してタブでの切り替えパネルを作成する方法について教えてください。
  • 現在、リンク「BBB」をクリックしても切り替えができず、表示されるだけの状態になっています。
  • クリック時に該当するdisplayをblockにするだけでなく、表示されているdisplayをnoneにする方法がわかりません。アドバイスをお願いします。

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

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5253/13739)
回答No.1

簡単なのは <a href="#" onclick="MM_changeProp('panel1','','display','block','DIV');MM_changeProp('panel2','','display','none','DIV');">AAA</a> <a href="#" onclick="MM_changeProp('panel2','','display','block','DIV');MM_changeProp('panel1','','display','none','DIV');">BBB</a> とする方法。 コードを美しくするならJavaScriptに function panel1(){ MM_changeProp('panel1','','display','block','DIV'); MM_changeProp('panel2','','display','none','DIV'); } function panel2(){ MM_changeProp('panel2','','display','block','DIV'); MM_changeProp('panel1','','display','none','DIV'); } を追加し、HTMLのリンク部分を <a href="#" onclick="panel1();">AAA</a> <a href="#" onclick="panel2();">BBB</a> と書き換える。

tep0607
質問者

お礼

返事が遅くなり済みません。 出来ました!理想的な回答でした。ありがとうございました!

その他の回答 (1)

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

たとえばこんな感じでどうでしょう? <script> function MM_changeProp(objId,objClass) { var n=document.getElementsByTagName('*'); for(var i=0;i<n.length;i++){ var cn=n[i].className; var reg1=new RegExp("(^| )"+objClass+"( |$)"); var reg2=new RegExp("(^| )notview(?= |$)"); if(cn.match(reg1)){ if(n[i]==document.getElementById(objId) && cn.match(reg2)){ n[i].className=cn.replace(reg2,""); }else if(n[i]!=document.getElementById(objId) && !cn.match(reg2)){ n[i].className +=" notview"; } } } return false; } </script> <style> div.notview {display:none;} </style> <a href="#" onclick="return MM_changeProp('panel1','view1')">AAA</a> <a href="#" onclick="return MM_changeProp('panel2','view1')">BBB</a> <a href="#" onclick="return MM_changeProp('panel3','view1')">CCC</a> <div id="panel1" class="hoge view1">AAAに関する内容</div> <div id="panel2" class="view1 notview fuga">BBBに関する内容</div> <div id="panel3" class="hoge view1 notview">CCCに関する内容</div> <a href="#" onclick="return MM_changeProp('panel4','view2')">XXX</a> <a href="#" onclick="return MM_changeProp('panel5','view2')">YYY</a> <a href="#" onclick="return MM_changeProp('panel6','view2')">ZZZ</a> <div id="panel4" class="view2">XXXに関する内容</div> <div id="panel5" class="view2 notview">YYYに関する内容</div> <div id="panel6" class="view2 notview">ZZZに関する内容</div>

tep0607
質問者

お礼

なるほど、こういうやり方もあるのですね。 ありがとうございました!

関連するQ&A

専門家に質問してみよう