我遇到问题在IE11中获取一个JS循环来处理页面上的4个元素。我希望函数hideImg
在您悬停的元素上以鼠标悬停运行。
这是我的代码:
elements.forEach( function(element) {
element.addEventListener('mouseover', hideImg);
});
我想我发现IE中不支持forEach
循环,如何在普通JS中轻松将其转换为for
循环?
亲切的问候,
史蒂夫
答案 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;
答案 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);
});