-2

为什么即使多次按下按钮后 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>
4

6 回答 6

3

您的代码中有几个问题:

  • 你没有$x在任何地方定义,你确实定义x了但它没有被使用。

  • if的不好:if ($x=true)应该是if ($x==true)甚至if ($x===true)

=是赋值,而==/===是比较/严格比较。

条件$x = true(这是一个赋值)总是为真,所以$x总是变成false

于 2013-11-07T10:49:09.487 回答
1

在下面的代码中,您正在分配TRUE 的值,而不是对其进行测试

if($x=true)

应该

if($x==true)
于 2013-11-07T10:49:13.083 回答
0

您将运算符=(赋值)与=====(比较或严格比较)混淆了

此外,您声明了一个变量x并使用了一个$x未在任何地方声明的变量。

最后,当您测试一个布尔值时,您不必将它与真假进行比较,而只需在条件声明中直接测试它的值。所以更if(x)喜欢if(x===true)

于 2013-11-07T10:49:10.143 回答
0

为什么 x 变量保持为假

因为您已将其定义为x,但您正在设置$x.

$x不一样x。它们是两个不同的变量名;设置一个并期望另一个改变是永远不会奏效的。

解决方案:$从您正在使用它的变量名称中删除符号。


也是if ($x=true)错误的。

您需要使用==(double equal) 或===(triple equal) 进行比较。如果您使用单个等号,则您正在设置变量(即使在if()语句中)。

解决方案:将 更改======

于 2013-11-07T10:49:16.910 回答
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;
            }
        };
于 2013-11-07T10:49:40.727 回答
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>
于 2013-11-07T10:49:48.173 回答