移动端移除swiper-slide类时报Cannot read 'classList' of undefined错误如何解决
问题修复方案
报错原因
你代码里的错误出在forEach遍历的参数使用逻辑:document.querySelectorAll('.swiper-slide')返回的是DOM节点集合,调用forEach遍历的时候,回调的第一个参数swip就已经是当前遍历到的单个DOM元素,不需要再加[index]索引取值,swip[index]本身就是undefined,调用classList自然会触发你遇到的报错。
修复后代码
function overlay() { let swiperSlide = document.querySelectorAll('.swiper-slide'); if (window.innerWidth < 991) { swiperSlide.forEach(swip => { swip.classList.remove('swiper-slide'); }); } else { swiperSlide.forEach(swip => { swip.classList.add('swiper-slide'); }); } }; overlay();
可选优化
如果需要窗口尺寸变化时自动触发类名切换逻辑,可以额外添加窗口大小变化监听:
window.addEventListener('resize', overlay);
内容的提问来源于stack exchange,提问作者Darya Lebedeva
相关产品推荐
相关产品推荐

