実現したいこと
タブごとに個別の文章を表示させるために違うタブの文章を表示させないでおきたいです。
具体的にはtab-0ではタブその0だけを表示させて、タブその1、タブその2を非表示にしたいです。
発生している問題・エラーメッセージ
エラーメッセージはないのですがdisplay:blockと打っても他の文章が隠せません
該当のソースコード
HTML
1<!DOCTYPE html> 2<!DOCTYPE html> 3<html lang="en"> 4<head> 5 <meta charset="UTF-8"> 6 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 7 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 8 <link rel="stylesheet" href="tab.css"> 9 <title>Document</title> 10</head> 11 12 13 <body> 14 <div class="tab" id="js-tab"> 15 <div class="tab-nav"> 16 <a href="" class="tab-nav-item is-active" data-nav="0">Tab-0</a> 17 <a href="" class="tab-nav-item" data-nav="1">Tab-1</a> 18 <a href="" class="tab-nav-item" data-nav="2">Tab-2</a> 19 20 </div> 21 <div class="tab-contents"> 22 <div class="tab-contens-item" data-content="0"> 23 タブその0 24 </div> 25 <div class="tab-contens-item" data-content="1"> 26 タブその1 27 </div> 28 <div class="tab-contens-item" data-content="2"> 29 タブその2 30 </div> 31 </div> 32 </div> 33 34 <script type="text/javascript" src="tab.js"></script> 35 36 </body> 37</html> 38 39
CSS
1.tab{ 2 width: 500px; 3} 4 5.tab-nav{ 6 display: flex; 7} 8.tab-nav-item{ 9 margin-right: 1px; 10 background: #ccc; 11 color: #000; 12 padding: 10px 20px; 13 text-decoration: none; 14 border-radius: 5px 5px 0 0 ; 15} 16 17.tab-nav-item.is-active{ 18 background: #000; 19 color: #fff; 20} 21 22 23 24.tab-contents{ 25 border: 1px solid #ccc; 26 padding: 20px; 27 28} 29
JS
1(()=>{ 2 3 const $doc = document; 4 const $tab = $doc.getElementById('js-tab'); 5 const $nav = $tab.querySelectorAll('[data-nav]'); 6 const $content = $tab.querySelectorAll('[data-content]'); 7 const init = () => { 8 $content[0].style.display = 'block'; 9 }; 10 init(); 11 12})();

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/03/10 22:53