我正在使用一个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/

10-12 04:44