javascript - 未捕获的类型错误:无法设置未定义的属性“显示”-如何在我的模态 JS 代码中修复它?
问题描述
我试图从中制作模态,但由于“未捕获的类型错误:无法设置未定义的属性‘显示’”,它无法正常工作。如何解决?
var modal = document.getElementsByClassName("modal-inner");
var btn = document.getElementsByClassName("open-button");
var close = document.getElementsByClassName("close-button")[0];
btn.onclick = function () {
modal.style.display = "block";
}
close.onclick = function () {
modal.style.display = "none";
}
解决方案
modal
是一个 HTML 元素数组,因此没有属性style
。
您需要访问具有给定索引的特定索引,或者forEach
对它们进行操作以设置该数组中每个项目的样式:
具体一:
btn.onclick = function () {
modal[0].style.display = "block";
}
close.onclick = function () {
modal[0].style.display = "none";
}
所有模态:
btn.onclick = function () {
modal.forEach(m => m.style.display = "block");
}
close.onclick = function () {
modal.forEach(m => m.style.display = "none");
}
推荐阅读
- firefox-addon - 是否可以在 Firefox Quantum 中查看上传百分比
- java - Java 的 BouncyCastle 并不总是验证 OpenSSL ECDSA 签名
- function - filesystemwatcher事件函数powershell中的访问函数
- node.js - 运行 MEAN 应用程序时出现“无默认引擎”错误
- javascript - 将 Google NodeJS 语音转文本与来自客户端麦克风的音频一起使用
- database - 给定查询的关系代数表达式
- python - 拆分多个字符?
- enums - 如何访问枚举变体未命名字段?
- javascript - React/JavaScript:在 React 的状态下向嵌套数组添加属性
- python - Python Regex 提取两个特定标签之间的内容