否则如果命令没有执行任务

时间:2015-11-04 08:08:02

标签: javascript css

我想根据div是否将display属性设置为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)";
            }

我做到这一点的唯一原因是因为我在这里发现了另一个试图做类似事情的帖子,这是我能做到的最好的。我使用了一个语法验证器来检查代码并且它恢复正常,然后在控制台中弹出,但是当我触发" welcome"时,颜色不会改变。 div切换到"显示:无;"。

4 个答案:

答案 0 :(得分:1)

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并且它始终为真,但使用==仅检查值,使用{ {1}}检查值和类型

<强>更新 如果显示属性与样式表一起提供,则无法检查显示属性,这仅在样式内联div标签时有效

例如:

===

答案 1 :(得分:0)

更改

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

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

否则,使用单=,您只需更改样式,而不是检查显示是否为“阻止”

答案 2 :(得分:0)

更改

var test = {
  firstname: 'David',
  fn: function() {

     return ['one', 'two', 'tree'].map(function() { 
        console.log(this.firstname);  // and now it will be your expected result

    }.bind(this))
  }
}

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

答案 3 :(得分:0)

您必须使用相等运算符而不是赋值运算符 有关详细信息visit this link