IE ForEach在IE11中循环

时间:2017-11-28 14:34:31

标签: javascript loops foreach

我遇到问题在IE11中获取一个JS循环来处理页面上的4个元素。我希望函数hideImg在您悬停的元素上以鼠标悬停运行。

这是我的代码:

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

我想我发现IE中不支持forEach循环,如何在普通JS中轻松将其转换为for循环?

亲切的问候,
史蒂夫

4 个答案:

答案 0 :(得分:9)

只需按照基本编程



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

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

答案 1 :(得分:4)

只需将其添加到您代码的顶部 所有浏览器

支持所提供的代码
if (window.NodeList && !NodeList.prototype.forEach) {
    NodeList.prototype.forEach = Array.prototype.forEach;
  }

答案 2 :(得分:1)

此代码将解决IE 11中的问题。

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

答案 3 :(得分:1)

还可以使用更为紧凑的产品:

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