Javascript html返回空计数时间

Javascript html返回空计数时间,javascript,asp.net,Javascript,Asp.net,我正在尝试从特定值创建计时器upstart JS代码 <script type="text/javascript"> var minutesLabel = document.getElementById("minutes"); var secondsLabel = document.getElementById("seconds");

我正在尝试从特定值创建计时器upstart

JS代码

            <script type="text/javascript"> 
            var minutesLabel = document.getElementById("minutes");
            var secondsLabel = document.getElementById("seconds");
            var totalSeconds = 0;
            setInterval(setTime, 1000);
            function setTime() {
                ++totalSeconds;
                secondsLabel.innerHTML = pad(totalSeconds % 60);
                minutesLabel.innerHTML = pad(parseInt(totalSeconds / 60));
            }

            function pad(val) {
                var valString = val + "";
                if (valString.length < 2) {
                    return "0" + valString;
                }
                else {
                    return valString;
                }
            }
        </script>

var minutesLabel=document.getElementById(“分钟”);
var secondsLabel=document.getElementById(“秒”);
var totalSeconds=0;
设置间隔(设置时间,1000);
函数setTime(){
++总秒数;
secondsLabel.innerHTML=pad(总秒数%60);
minutesLabel.innerHTML=pad(parseInt(totalSeconds/60));
}
功能板(val){
var valString=val+“”;
如果(valString.length<2){
返回“0”+valString;
}
否则{
返回valString;
}
}
HTML代码

<asp:Label ID="minutes" runat="server" Text="00"></asp:Label>:<asp:Label ID="seconds" runat="server" Text="00"></asp:Label>
错误控制台并保持每1秒打印一次

未捕获类型错误:secondsLabel为空 设定时间https://localhost:44340/attendance:30


这个脚本没有什么问题,看起来由于某种原因它找不到html元素。肯定还有其他原因,因为以下脚本在我的浏览器中以纯html文件的形式完美运行:

<body>
<asp:Label ID="minutes" runat="server" Text="00"></asp:Label>:<asp:Label ID="seconds" runat="server" Text="00"></asp:Label>
    
    <script type="text/javascript"> 

            var minutesLabel = document.getElementById("minutes");
            var secondsLabel = document.getElementById("seconds");
            var totalSeconds = 0;

            setInterval(setTime, 1000);
            function setTime() {
        
                ++totalSeconds;
                secondsLabel.innerHTML = pad(totalSeconds % 60);
                minutesLabel.innerHTML = pad(parseInt(totalSeconds / 60));
            }

            function pad(val) {
                var valString = val + "";
                if (valString.length < 2) {
                    return "0" + valString;
                }
                else {
                    return valString;
                }
            }
    </script>
</body>

:
var minutesLabel=document.getElementById(“分钟”);
var secondsLabel=document.getElementById(“秒”);
var totalSeconds=0;
设置间隔(设置时间,1000);
函数setTime(){
++总秒数;
secondsLabel.innerHTML=pad(总秒数%60);
minutesLabel.innerHTML=pad(parseInt(totalSeconds/60));
}
功能板(val){
var valString=val+“”;
如果(valString.length<2){
返回“0”+valString;
}
否则{
返回valString;
}
}

也许您可以尝试用plain交换标记,看看问题是否消失(对不起,我不知道ASP,在您的示例中它是否会影响)。

如果脚本还有其他工作要做,刷新计数可能会有点晚,所以如果您需要它显示精确的秒数,即使经过很长一段时间,您可以首先在脚本的开头获取timestamp
let startTime=Date.now()
,然后更改
setInterval
callback以显示开始和现在之间的时间差<代码>函数settime(){let totalSeconds=(Date.now()-startTime)/1000;/*函数的其余部分保持不变*/}哦,这是我的错,因为我是一个初学者,但JS在标签之前我做的是u,它是工作一个更多的Q我可以停止计数和开始计数取决于按钮的激活或指令的状态吗?现在我有另一个问题,当我让他从18:54开始时,他保持1秒到59,然后必须增加1分钟到18,但这对我不起作用,它保持不变18然后重置分钟您可以在Javascript中执行任何您想执行的操作:)例如,如果您保持代码不变,则在文档正文中插入
Start/Sttop
。然后在脚本开始时,您可以添加
让btnEnabled=true;document.querySelector(“#btn”).onclick=()=>btneEnabled=!btnEnabled
和在
setInterval
回调函数
if(btnEnabled){++totalSeconds}。但这不是让人们为你编码的正确地方。我鼓励你学习Javascript的基础知识,这是一个很好的地方。至于计数器重置,这可能是由于你文章中给出的因素之外的因素造成的。脚本对我来说运行正常,20分钟,正在计算。