首页 > 解决方案 > 未捕获的类型错误:无法设置未定义的属性“显示”

问题描述

当我点击这个 div 时,我希望它显示一条错误消息,说它太贵了

我尝试将 document.getElementByClassName 更改为变量,但我没想到它会起作用。

function hideError() {
  document.getElementsByClassName("errorMessage").style.display = "none";
}
function showError() {
  document.getElementsByClassName("errorMessage").style.display = "contents";
  setTimeout("hideError", 5000);

未捕获的类型错误:无法设置未定义的属性“显示”

标签: javascripthtmltypeerror

解决方案


你非常亲近。第一个问题,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>


推荐阅读