我正在使用一个JavaScript文件来隐藏具有相同类名的所有div,程序会尽可能地隐藏它们,但是当我希望它们在“ x”秒后可见时,元素数组变得未定义且长度为0 ,不确定发生了什么。我尝试将“ lowerDash”更改为全局变量无济于事。
function newBaseHandler(){
if (document.getElementById("Base6").innerHTML == `<br><p>Create new base</p>`) {
let lowerDash = document.getElementsByClassName("LowerDashboard");
let message = document.getElementById("Message");
for (let button of lowerDash) {
button.style.visibility = "hidden";
}
message.innerHTML = `<br><p>Base created successfully</p>`;
setTimeout(function() {
message.innerHTML = ``;
console.log(lowerDash.length);
for (let button of lowerDash) {
button.style.visibility = "visible";
}
}, 1000);
}
}
最佳答案
如果您希望它们在超时后再次显示,请尝试
button.style.visibility = "visible"
在您的for循环insie setTimeout中
关于javascript - 具有特定类的元素数组在setTimeout中变得未定义,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59313970/