当我点击这个 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>
关于javascript - 未捕获的类型错误 : cannot set property 'display' of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57834882/