web-dev-qa-db-ja.com

IE11のJS ForEachループ

IE11のページで4つの要素で動作するJSループの取得に問題があります。ホバーした要素上でマウスオーバーで関数hideImgを実行したいです。

ここに私のコードがあります:

elements.forEach( function(element) {
    element.addEventListener('mouseover', hideImg);
});

IEではforEachループがサポートされていないことがわかったと思いますが、これをプレーンJSでforループに簡単に変換するにはどうすればよいですか。

敬具、
スティーブ

12
Steve Walker

基本的なプログラミングに従うだけ

var elements = document.getElementsByClassName("test");
for (var i = 0; i < elements.length; i++) {
  elements[i].addEventListener('mouseover', hideImg);
}

function hideImg() {
  console.log("hideImg called")
}
.test {
  width: 40px;
  height: 20px;
  border: green solid 1px;
}
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
15
Nemani

このコードは、IE 11。

Array.prototype.slice.call(elements).forEach( function(element) {
    element.addEventListener('mouseover', hideImg);
});
6