You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript新手求助:按钮无响应,如何在事件中使用switch语句实现功能

问题分析与解决方案

嗨,刚学JavaScript就尝试写交互功能,已经很棒啦!你遇到的问题其实是个小细节失误,咱们一步步来修正:

核心问题:日期方法用错了

你代码里用了new Date().getDate(),这个方法返回的是当月的具体日期(1-31),而非星期几!要获取星期几(0代表周日,6代表周六),得用new Date().getDay(),这就是你的switch语句没按预期生效的关键原因~

修正后的代码

1. JavaScript代码(js.js)

function lbl() {
  // 改用getDay()获取星期几的索引(0-6)
  switch (new Date().getDay()) {
    case 0:
      document.getElementById('show').innerHTML = "Sunday";
      break;
    case 1:
      document.getElementById('show').innerHTML = "Monday";
      break;
    case 2:
      document.getElementById('show').innerHTML = "Tuesday";
      break;
    case 3:
      document.getElementById('show').innerHTML = "Wednesday";
      break;
    case 4:
      document.getElementById('show').innerHTML = "Thursday";
      break;
    case 5:
      document.getElementById('show').innerHTML = "Friday";
      break;
    case 6:
      document.getElementById('show').innerHTML = "Saturday";
      break;
    // 加个default兜底,应对意外情况
    default:
      document.getElementById('show').innerHTML = "Unknown";
  }
}

2. HTML代码

<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=auto, initial-scale=1.0">
    <title>Show Weekday</title>
</head>
<body>
    <h1 id="show">Show date!</h1>
    <!-- 给onclick的函数调用加引号,更符合规范 -->
    <button onclick="lbl()">Click me!</button>
    <script src="js.js"></script>
</body>
</html>

额外优化建议(可选)

如果觉得switch语句有点冗长,也可以用数组简化逻辑,效果完全一致:

function lbl() {
  const weekdays = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
  const dayIndex = new Date().getDay();
  document.getElementById('show').innerHTML = weekdays[dayIndex];
}

这样点击按钮后,就能正确显示当前的星期几啦~

内容的提问来源于stack exchange,提问作者M.alizadeh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 06:52:39