Javascript - 新手脚本无法正常工作

时间:2017-01-08 16:39:17

标签: javascript html

有人可以解释为什么这个脚本无效吗?我试图弄清楚很长时间,但我没有设法做到这一点。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!DOCTYPE html>
<html>
<head>
    <script>
        function Xyz() {
            var x = 0;
        }

        function Switch() {
            if (x == 0) {
                document.body.style.backgroundColor = "black";
                x = 1;
            }
            else {
                document.body.style.backgroundColor = "white";
                x = 0;
            }
        }
    </script>
</head>
<body>
    <button type="button" onclick="Switch()">Click me</button>

</body>
</html>

3 个答案:

答案 0 :(得分:0)

您需要定义变量x。我在这个例子中使用了吊装。

&#13;
&#13;
<!DOCTYPE html>
<html>
<head>
<script>
function Xyz()
{
 var x=0;
}

function Switch()
{
if(x==0)
{
document.body.style.backgroundColor="black";
x=1;
}
else
{
document.body.style.backgroundColor="white";
x=0;
}
}
  var x;
</script>
</head>
<body>
<button type="button"onclick="Switch()">Click me</button>

</body>
</html>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

if(x==0)

由于x不存在,它会抛出一个ReferenceError并中止函数的其余部分。

您需要先声明x

此:

function Xyz()
{
 var x=0;
}
  • 函数本地创建变量x
  • 永远不会被打电话

答案 2 :(得分:0)

问题是你需要在使用它之前声明一个变量。

function Switch()
{
if(x==0) // this x is not defined. 
{
document.body.style.backgroundColor="black";
x=1;
}
else
{
document.body.style.backgroundColor="white";
x=0;
}
}

由于每次单击都需要使用相同的变量进行更新,因此请在函数外部进行定义。

&#13;
&#13;
<!DOCTYPE html>
<html>
<head>
<script>
var x = 0;
function Xyz()
{
 var x=0;
}

function Switch()
{
if(x==0)
{
document.body.style.backgroundColor="black";
x=1;
}
else
{
document.body.style.backgroundColor="white";
x=0;
}
}
</script>
</head>
<body>
<button type="button"onclick="Switch()">Click me</button>

</body>
</html> 
&#13;
&#13;
&#13;