for文で回したうえでクリックイベントを行うとIEとchrome で違う値が出力されました。
コードは下記になります。
javascript
1<script> 2 const el = document.querySelectorAll('.el') // 5つあるクラス 3 for (let i = 0; i < el.length; i++) { 4 console.log(i) // => 0, 1, 2, 3, 4 5 el[i].addEventListener('click', function() { 6 console.log(i) // クリックされた要素の順番のはずがIEだと「5」が出る。 7 console.log(el[i]) // そのためIEではundifind 8 }) 9 10 } 11</script>
const
let
を var
に変更したりしましたが、結果は変わりませんでした。
この書き方がいけないのでしょうか?
ブラウザ間の差ということで仕方ないのでしょうか?
結果的にやりたいことは解決しているのですが、その原因が納得いかず、質問させていただきました。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/02 10:24
2021/07/02 10:27
2021/07/02 10:31
2021/07/02 10:44