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

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) { }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值