javascript - 未捕获的类型错误:无法设置未定义的属性“显示”
问题描述
当我点击这个 div 时,我希望它显示一条错误消息,说它太贵了
我尝试将 document.getElementByClassName 更改为变量,但我没想到它会起作用。
function hideError() {
document.getElementsByClassName("errorMessage").style.display = "none";
}
function showError() {
document.getElementsByClassName("errorMessage").style.display = "contents";
setTimeout("hideError", 5000);
未捕获的类型错误:无法设置未定义的属性“显示”
解决方案
你非常亲近。第一个问题,getElementsByClassName
返回一个HTMLCollection
. 您将需要遍历此列表或调用[0]
以获取第一项。
其次,调用setTimeout
应该是一个函数作为第一个参数(不是字符串)setTimeout(hideError, 5000);
:.
function hideError() {
document.getElementsByClassName("errorMessage")[0].style.display = "none";
}
function showError() {
document.getElementsByClassName("errorMessage")[0].style.display = "contents";
setTimeout(hideError, 5000);
}
showError();
<div class="errorMessage">ERROR</div>
推荐阅读
- apache-kafka - 将外部 kafka 集群连接到 Apache Atlas?
- java - 如何使命令 java -version 在装有 Windows 8.1 的计算机上运行?
- terraform - 如何使用 Terraform 和 aws_apigatewayv2_integration 设置 API Gateway Step Function 集成
- python - 有没有更短的方法可以创建这个列表?
- kubernetes - 使用 Bitnami WordPress helm chart,如何通过 FTP 连接 Filezilla?
- css - 是否可以取消所有 css 文件在 Wordpress 前端加载但保持后端加载 css 正常?
- spring-cloud-stream - SCDF 流设计和定制处理器
- ansible - 无法根据条件运行任务文件以避免ansible中的块循环
- github-actions - GitHub 操作 $GITHUB_WORKSPACE envar 为什么列出空目录?
- gcc - 当默认标准是 201402L (c++14) 时 g++ 与 g++ -std=c++14 有什么不同吗?