否则,如果命令未执行任务

else if command not executing task

本文关键字:执行任务 命令 如果 否则      更新时间:2023-09-26

我想根据div的显示属性是否设置为block或none来切换背景的颜色。

到目前为止,我有

if(document.getElementById("welcome").style.display="block"){
        mpage.style.background="rgba(27, 27, 27, .88)";
    }
        else if (document.getElementById("welcome").style.display="none"){
            mpage.style.background="rgba(255, 255, 255, .44)";
            }

我能做到这一点的唯一原因是,我在这里发现了另一个帖子,试图做类似的事情,这是我能做的最好的形式。我使用语法验证器检查代码,结果很好,控制台中没有弹出任何内容,但当我触发"欢迎"div切换到"显示:无;"时,颜色没有改变。

if(document.getElementById("welcome").style.display=="block"){
        mpage.style.background="rgba(27, 27, 27, .88)";
    }else if (document.getElementById("welcome").style.display=="none"){
        mpage.style.background="rgba(255, 255, 255, .44)";
       }

使用单个=将值分配给显示器,然后检查它是否为true,并且始终为真,但使用==仅检查值,使用===检查值和类型

更新如果display属性是与样式表一起提供的,则不能检查它,只有当样式是在div标记中内联编写时,这才有效

例如:

<div id="welcome" style="display:none;">some content</div>

更改

if(document.getElementById("welcome").style.display="block"){
                                                   ^

if(document.getElementById("welcome").style.display=="block"){
                                                   ^^

否则,使用单个=,您只需更改样式,而不是检查显示是否为"块"

更改

if(document.getElementById("welcome").style.display="block"){

if(document.getElementById("welcome").style.display=="block"){

必须使用相等运算符而不是赋值运算符有关更多信息,请访问此链接