为什么即使多次按下按钮后x变量仍然为假?
<p id="text">Bonjour</p>
<button type="button" id="button">Push to tranform</button>
<script>
var x=true;
document.getElementById("button").onclick=
function(){
if ($x=true) {
document.getElementById("text").innerHTML="Au revoir";
$x=false;
}
else {
document.getElementById("text").innerHTML="Bonjour";
$x=true;
}
};
</script>
答案 0 :(得分:3)
您的代码中存在几个问题:
您没有在任何地方定义$x
,您确实定义了x
但未使用它。
您的if
不好:if ($x=true)
应为if ($x==true)
或if ($x===true)
。
=
是作业,而==
/ ===
是比较/严格比较。
条件$x = true
(这是一项作业)始终为真,因此$x
始终为false
。
答案 1 :(得分:1)
在以下代码中,您指定值为TRUE,而非测试
if($x=true)
应该是
if($x==true)
答案 2 :(得分:0)
您将操作员=
(分配)与==
或===
混淆(比较或严格比较)
此外,您声明变量x
并使用未在任何地方声明的变量$x
。
最后,当你测试一个booelan时,你不必将它与true或false进行比较,而是直接在你的条件声明中测试它的值。所以更喜欢if(x)
到if(x===true)
答案 3 :(得分:0)
为什么x变量保持错误
因为您已将其定义为x
,但您正在设置$x
。
$x
与x
不同。它们是两个不同的变量名称;设置一个并期望另一个改变永远不会起作用。
解决方案:从您正在使用它的变量名称中删除$
个符号。
if ($x=true)
也是错误的。
您需要使用==
(双等)或===
(三等)来进行比较。如果使用单个等号,则设置变量(即使在if()
语句中)。
解决方案:将=
更改为==
或===
。
答案 4 :(得分:0)
<p id="text">Bonjour</p>
<button type="button" id="button">Push to tranform</button>
<script>
var x=true;
document.getElementById("button").onclick=
function(){
if (x===true) {
document.getElementById("text").innerHTML="Au revoir";
x=false;
}
else {
document.getElementById("text").innerHTML="Bonjour";
x=true;
}
};
答案 5 :(得分:0)
<p id="text">Bonjour</p>
<button type="button" id="button">Push to tranform</button>
<script>
var x=true;
document.getElementById("button").onclick=
function(){
if (x==true) {
document.getElementById("text").innerHTML="Au revoir";
x=false;
}
else {
document.getElementById("text").innerHTML="Bonjour";
x=true;
}
};
</script>