当我点击第二个、第三个...时间时,时间不会更新
我编写了一个非常简单的 js 代码,单击按钮后,它会使用“警报”反射(reflect)当前时间。但当您第二次单击时,数字仍与第一次尝试时相同。
<html><head><meta charset="utf-8"><title>What's time is it?</title></head>
<body>
<p>Here is the time you wanted to know:</p>
<script src="/Users/nikita/Desktop/Web/Practice/Static time upon request/script.js"></script>
<button onclick="btnClick ()">Click me!</button>
</body>
</html>
var today= new Date();
var day=today.getDay ();
var daylist=["Monday", "Tuesday", "Wednessday", "Thursday", "Friday", "Saturday", "Sunday"];
console.log("Today is: " + daylist[day]);
var hours = today.getHours();
var ampm = (hours>12)? "PM" : "AM";
var hoursAtTheScreen = (hours>12)? hours-12 : hours;
var minutes = today.getMinutes ();
var seconds = today.getSeconds ();
function btnClick () {
innerHTML=window.alert("Now is " + hoursAtTheScreen + ampm + " " + minutes + "min" + " " + seconds + "sec");
}
我希望每次点击后值都会更新。我尝试使用 .innerHTMl 但没有成功。当然,我遗漏了一个非常简单的点。您能给我解释一下吗?具体是什么?
提前谢谢您!
最佳答案
这是因为你的时间值仅在 JS 首次加载时计算一次。为了保持更新,您必须在函数内生成它们。
var daylist=["Monday", "Tuesday", "Wednessday", "Thursday", "Friday", "Saturday", "Sunday"];
function btnClick () {
var today= new Date();
var day=today.getDay ();
console.log("Today is: " + daylist[day]);
var hours = today.getHours();
var ampm = (hours>12)? "PM" : "AM";
var hoursAtTheScreen = (hours>12)? hours-12 : hours;
var minutes = today.getMinutes ();
var seconds = today.getSeconds ();
innerHTML=window.alert("Now is " + hoursAtTheScreen + ampm + " " + minutes + "min" + " " + seconds + "sec");
}
关于javascript - 如何通过点击时钟示例来更新输出值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57739581/