前提・実現したいこと
JS初心者です。
JSでidを複数取得しclickBtnで表示の出しわけをしたいです。
書き方がいまいちわからない状態で機能しません…
該当のソースコード
// HTML <a href="#"> <div onclick="clickBtn1()"> <img src="button01img.png" alt="01"> </div> </a> <a href="#"> <div onclick="clickBtn2()"> <img src="button02img.png" alt="02"> </div> </a> 以下省略 <div id="id-1"> <img src="/assets/img/img-01.png"> </div> <div id="id-2"> <img src="/assets/img/img-02.png"> </div> <div id="id-3"> <img src="/assets/img/img-03.png"> </div> <div id="id-4"> <img src="/assets/img/img-04.png"> </div> <div id="id-5"> <img src="/assets/img/img-05.png"> </div> 以下省略
// 複数のid名で一括取得 function getElements(){ let elem = {}; let elements = {}; let id = ''; // 引数の数だけループ for (let i = 0; i < arguments.length; i++){ id = arguments[i]; elem = document.getElementById(id); // id名が定義されている場合のみ、elementsに追加 if (elem != null){ elements[id] = elem; } } return elements; } document.getElements('id-1','id-2','id-3').style.display ="none"; function clickBtn1(){ const p1 = document.getElements('id-1','id-2','id-3'); if(p1.style.display=="block"){ p1.style.display ="none"; }else{ p1.style.display ="block"; } }
// ひとつのid名で取得は下記でできています。 複数取得したいのです document.getElementById("id-1").style.display ="none"; function clickBtn1(){ const p1 = document.getElementById("id-1"); if(p1.style.display=="block"){ p1.style.display ="none"; }else{ p1.style.display ="block"; } }
回答2件
あなたの回答
tips
プレビュー