以HTML编码的Javascript无法正常工作

时间:2016-08-05 23:25:34

标签: javascript html

我试图做一个简单的事情,根据提示更改段落的值。我将javascript编码到html中。但是当我运行它时,屏幕是空白的。提示甚至不显示。我是初学者,所以这可能很容易解决,但有人可以帮忙吗?提前谢谢。

<!DOCTYPE html>
<html>
    <head>
        <title>Randomness!</title>
    </head>

    <body>
        <p id="change"> </p>

        <script>
            var change = prompt("Enter 1 or 2");

            if (change === 1) {
                document.getElementById("change").innerHTML = "You said one!";
            }

            if change === 2 {
                document.getElementById("change").innerHTML = "You said two!";
            }

            else {
                document.getElementById("change").innerHTML = "That was not an option.";
            }
        </script>
    </body>
</html>

5 个答案:

答案 0 :(得分:4)

语法错误。如果条件允许,请在下面更正

  if (change === '2') {

http://codepen.io/nagasai/pen/yJRQNO

要使功能正常工作,请将条件比较更新为字符串值1和2

HTML:

<html>
    <head>
        <title>Randomness!</title>
    </head>

    <body>
        <p id="change"> </p>

        <script>
            var change = prompt("Enter 1 or 2");
console.log(change)
            if (change === '1') {
                document.getElementById("change").innerHTML = "You said one!";
            }

            else if (change === '2') {
                document.getElementById("change").innerHTML = "You said two!";
            }

            else {
                document.getElementById("change").innerHTML = "That was not an option.";
            }
        </script>
    </body>
</html>

答案 1 :(得分:1)

你需要包围你的if条件,这将在下面工作..你应该将它设为else if,因为如果change的值为1,它将始终进入最后<{1}}子句..(转换声明可能会更好),无论如何,这将起作用。

else

答案 2 :(得分:0)

根据我的观点,第二个if语句有语法错误。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/if...else

答案 3 :(得分:0)

这里有三个问题。

1)change将是一个字符串,而不是整数
2)第二个条件周围没有parens 3)条件应为else if

尝试:

&#13;
&#13;
var change = prompt("Enter 1 or 2");

if (change === '1') {
  document.getElementById("change").innerHTML = "You said one!";
} else if (change === '2') {
  document.getElementById("change").innerHTML = "You said two!";
} else {
  document.getElementById("change").innerHTML = "That was not an option.";
}
&#13;
<p id="change"> </p>
&#13;
&#13;
&#13;

答案 4 :(得分:0)

提示时,

change是一个字符串。您正在使用===将其与数字进行比较,后者会检查类型,因此无法正常工作。

你也应该:

  • 使用parseInt将输入的字符串转换为数字:

    var change = parseInt( prompt("Enter 1 or 2"), 10);

  • 使用==,它将忽略类型:

    if(change == 1)

  • 使用字符串作为比较:

    if(change === "1")

你的第二个条件周围也缺少括号,你应该在那里使用else if