前提・実現したいこと
JavaScriptの練習でアコーデオンをつくってみているのですが、forEach文を使って書いてみたところ要素をクリックすると、全ての要素が動いてしまうのですが1つずつ動かすには何が必要になるのかおしえていただきたいです。
HTML
1 <div class="accordion"> 2 <div class="accordionHead"> 3 <a class="txtm"> 4 プログラミングスキルは必要ですか? 5 </a> 6 </div> 7 <div class="accordionBody"> 8 <p class="txts"> 9 いいえ、必要ありません。しかし、iSaraでは参加費以上の金額が稼げることを保障して 10 います。 従って、事前通話面談時点で簡単なテストを実施し、場合によってはお断りを 11 しております。この点だけはご了承ください。 12 </p> 13 </div> 14 <div class="accordionHead"> 15 <a class="txtm"> 16 プログラミングスキルは必要ですか? 17 </a> 18 </div> 19 <div class="accordionBody"> 20 <p class="txts"> 21 いいえ、必要ありません。しかし、iSaraでは参加費以上の金額が稼げることを保障して 22 います。 従って、事前通話面談時点で簡単なテストを実施し、場合によってはお断りを 23 しております。この点だけはご了承ください 24 </p> 25 </div> 26 </div> 27
Javascript
1'use strict'; 2 3{ 4 const accordionHeads = document.querySelectorAll('.accordionHead'); 5 const accordionBodys = document.querySelectorAll('.accordionBody'); 6 7 accordionHeads.forEach((clicked) => { 8 clicked.addEventListener('click', () => { 9 accordionBodys.forEach((item) => { 10 if (item.classList.contains('open')) { 11 item.classList.remove('open'); 12 } else { 13 item.classList.add('open'); 14 }); 15 }); 16 }); 17 18}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。