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
相关产品推荐
相关产品推荐

