前提・実現したいこと
自作のホームページでの利用予定です。
selectタグのvalue値によってa要素の表示・非表示が切り替えられるフィルタ機能を使い、
ギャラリー機能のようなものを作成したいと考えております。
例:
selectがAteamの時→aのclass=aImgだけ表示
selectがBteamの時→aのclass=bImgだけ表示
初心者なりにソースを書いたのですが全く動かず…
何か考え方が違うのか等お知恵を拝借できますと幸いです。
発生している問題・エラーメッセージ
1,selectの値を変更してもa要素が消えない 2,Uncaught ReferenceError: $ is not defined at HTMLSelectElement.menuSelect 下記コードそのまま実行すると、未定義と表示される。 let menuSelect = document.querySelectorAll('select'); を追加すると、 Uncaught SyntaxError: Identifier 'menuSelect' has already been declared 重複定義?と表示されてしまう。
ソースコード
html
1<div id="wrapper"> 2 3 <select name="sample" onchange="menuSelect()" id="test"> 4 <option value="Ateam">A</option> 5 <option value="Bteam">B</option> 6 <option value="Cteam">C</option> 7 </select> 8 9 <a href="a1.html" class="aImg">A1</a> 10 <a href="a2.html" class="aImg">A2</a> 11 <a href="B1.html" class="bImg">B1</a> 12 <a href="c1.html" class="cImg">C1</a> 13 <a href="b2.html" class="bImg">B2</a> 14 <a href="c2.html" class="cImg">C2</a> 15 16</div>
javascript
1let ashow = document.querySelectorAll('.aImg'); 2let bshow = document.querySelectorAll('.bImg'); 3let cshow = document.querySelectorAll('.cImg'); 4let menuSelect = document.querySelectorAll('select'); 5document.getElementById("test").onchange = menuSelect; 6 7function menuSelect() { 8 $val = $("select[name='sample']").val(); 9 if($val == 'Ateam'){ 10 ashow.style.display="block"; 11 }else { 12 ashow.style.display="none"; 13 } 14 if($val == 'Bteam'){ 15 bshow.style.display="block"; 16 }else { 17 bshow.style.display="none"; 18 } 19 if($val == 'Cteam'){ 20 cshow.style.display="block"; 21 }else { 22 cshow.style.display="none"; 23 } 24}; 25
ミスが多いコードかとは思うのですが、
何卒よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/14 00:41
2020/09/15 16:08