Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
坚持使用Javascript中的“IF”语句_Javascript_Html - Fatal编程技术网

坚持使用Javascript中的“IF”语句

坚持使用Javascript中的“IF”语句,javascript,html,Javascript,Html,我试图使某个div的显示样式为none,如果它引用的div的显示样式为block,例如: var x = document.getElementById("first_question"); var y = document.getElementById("second_question"); if (x.style.display = "block") { y.style.display = "none"; }

我试图使某个div的显示样式为none,如果它引用的div的显示样式为block,例如:


var x = document.getElementById("first_question");
var y = document.getElementById("second_question");

if (x.style.display = "block") {
y.style.display = "none";
}

但是,我在第一个问题div中有两个按钮,根据按下哪个按钮,应更改第二个问题的样式。显示为阻止:

function button() {
y.style.display = "block";
}

HTML如下所示:


  <div id="first_question">
    <p>This is question #1</p>

      <input type="button" onclick="button()"  value="button">
      <input type="button" onclick="whatever()" value="whatever">

  </div>

  <div id="second_question">
    <p>This is question #2</p>

      <input type="button" onclick="option1()" value="option1">
      <input type="button" value="option2">

  </div>





我不太清楚你在问什么,但我想我可能看到了问题:

if (x.style.display = "block") {
y.style.display = "none";
}
在这里,您使用一个=符号,而不是两个或三个。请参见编辑。这意味着代码将始终设置x以显示block,并且由于javascript中的值是真实的,if语句将计算为true,y将始终将其显示设置为none

编辑:


最初我写的是用一个等号代替两个。然而,在javascript中使用三个等号是最佳实践,我经常忘记这一点,因为我主要是一名Java程序员。这是因为它强制进行类型检查,从而防止出现奇怪的行为:

您可以制作一个示例可运行代码片段x.style.display=block没有检查相等性,而是将值块指定给x.style.display;为了检查等式,在JS中,最好的选择是.ifx.style.display==block{//needs to done}@Vishnudev这里有一个可运行的代码:如果是这样,这不应该工作吗?我的问题2应该是隐藏的,直到在问题1中按下按钮。