【问题标题】:javascript switch() giving the default value?javascript switch() 给出默认值?
【发布时间】:2020-07-20 02:31:55
【问题描述】:

为什么这段代码只给我默认值

<!DOCTYPE html>
<html>
<body>
<p id= "demo"></p>
<input id="age" />
<button onclick="document.getElementById('demo').innerHTML=text">try it</button>

<script>
var text;
age = document.getElementById('age').value;
switch (age) {
  case 10:
    text = "diuble";
    break;
  case 13:
    text = "puberty";
    break;
  case 18:
    text = "Beer!";
    break;
  default:
    text = "Looking forward to the Weekend";
}
</script>
</body>
</html>

我尝试将 document.getElementById('age').value 更改为 18,当我这样做时,它会给我作为啤酒的输出!但现在它只给我期待....

【问题讨论】:

  • document.getElementById('age').value 我很确定这会给出一个字符串,您的开关案例是数字,因此它们不匹配。而&lt;input id="age" /&gt; 没有值
  • 因为代码只在页面加载时运行......它不会神奇地继续运行。这就是事件处理程序的用途。
  • document.getElementById('age').value前面加上一个加号,将其授予一个号码。
  • @Akxe 需要的不仅仅是+

标签: javascript html input switch-statement


【解决方案1】:

您没有调用函数onclick,并在文档加载时触发代码。正确的做法是:

function getText(){
          var text;
          age = document.getElementById('age').value;
          age = parseInt(age)
          switch (age) {
               case 10:
                    text = "diuble";
                    break;
               case 13:
                    text = "puberty";
                    break;
               case 18:
                    text = "Beer!";
                    break;
               default:
                    text = "Looking forward to the Weekend";
          }
          document.getElementById('demo').innerHTML=text
}
<p id= "demo"></p>
<input id="age" />
<button onclick="getText()">try it</button>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-08
    • 1970-01-01
    • 1970-01-01
    • 2018-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多