首页 > 解决方案 > 未捕获的类型错误:无法读取 HTMLImageElement 处未定义的属性“切换”。

问题描述

这是代码:

let imagenes = document.querySelectorAll(".team");
let modal = document.querySelectorAll("#modal");
let img = document.querySelectorAll("#modal__img");
let boton = document.querySelectorAll("#modal__boton");

for (let i = 0; i < imagenes.length; i++){
  imagenes[i].addEventListener("click", function(e){
    modal.classList.togle("modal--open");
  })
}

错误:

Uncaught TypeError: Cannot read property 'toggle' of undefined    at HTMLImageElement.<anonymous>"

标签: javascriptdom

解决方案


如果您使用的是querySelectorAll,您将获得一个 HTML 集合,因此您需要遍历它的元素来切换一个类。如果您只想切换一个元素,则定位速度更快,但如果您需要切换多个元素,您的代码将如下所示

const elements = document.quesySelectorAll('.myClass');
elements.forEach(x => x.classList.toggle('otherClass');

推荐阅读