前提・実現したいこと
javascriptでクリックした要素に対して内容の変更とclassの付与を行いたいのですが、
配列に格納した文字列をループで指定した番号を渡して指定した上で、classを付与しようとするとundefinedになってしまいます。
発生している問題
classList.add(cls[i])の処理がundefinedを挿入してしまう。
該当のソースコード
javascript
1<body> 2 <div id="app"> 3 <div class="box"> 4 <div class="btn">あいうえお</div> 5 <div class="btn">かきくけこ</div> 6 <div class="btn">さしすせそ</div> 7 </div> 8 </div> 9 10 <script> 11 12 document.addEventListener('DOMContentLoaded',function(){ 13 var btns = document.querySelectorAll('.btn'); 14 let cls = ["btn01","btn02","btn03"] 15 for(var i = 0; i < btns.length; i++){ 16 btns[i].addEventListener('click',function(){ 17 this.innerHTML="変わったよ"; 18 this.classList.add(cls[i]) 19 },false); 20 } 21 },false); 22 </script> 23</body>
回答5件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。