坚持使用Javascript中的“IF”语句
我试图使某个div的显示样式为none,如果它引用的div的显示样式为block,例如:坚持使用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"; }
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中按下按钮。