360极速浏览器中的极速模式下,报错:eWrap.forEach is not a function

编程入门 行业动态 更新时间:2024-10-16 02:29:23
var eSpread, eWrap;
eWrap = document.querySelectorAll('.list-group-item[ng-repeat]');
eWrap.forEach(function(item) {
    eSpread = document.createElement('i');
    eSpread.classList.add('cus-glyphicon', 'glyphicon-menu-down');
    eSpread.addEventListener('click', function(event) {
        event.preventDefault();
        event.stopPropagation();
        angular.element(item).toggleClass('spread');
    }, true);
    item.appendChild(eSpread);
});

eWrap = document.querySelectorAll(’.list-group-item[ng-repeat]’);

在谷歌和360极速浏览器的极速模式下,都显示eWrap是个nodeList,但在360下报错。

查找资料信息
querySelectorAll的兼容性

forEach的兼容性

nodeList.forEach

最近发生该错误的版本是:谷歌浏览器47;
eWrap是有值的,是一个nodeList,伪数组;
forEach是用来遍历数组的,但也可以遍历nodeList;
eWrap.forEach在谷歌中报错,但在ie11中就忽略掉了;

因此,这个问题就是浏览器兼容性问题了,解决办法有两种:
1、把伪数组转化为一个数组;
2、使用兼容性更高的api,比如angular.foreach();
3、在HTML的集合的上下文里先声明是一个数组,比如下面的方法:

[].forEach.call(eWrap, function(item) { }

更多推荐

360极速浏览器中的极速模式下,报错:eWrap.forEach is not a function

本文发布于:2023-06-14 08:17:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1455097.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:极速   报错   器中   模式下   forEach

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!