gpt4 book ai didi

javascript - 为什么不能将 `document.getElementById("text"); ` 设置为全局?

转载 作者:行者123 更新时间:2023-11-30 08:29:42 30 4
gpt4 key购买 nike

这是我的 60 秒计数时间代码,运行成功。

<html>
<head>
<script type="text/javascript">
var start=Date.now();
function showtime(){
var c=document.getElementById("text");
var nowtime=60-Math.floor((Date.now()-start)/1000);
c.innerHTML="left time is "+ nowtime +" seconds";
}
function countTime(){
var c=document.getElementById("text");
c.innerHTML="left time is 60 seconds";
setInterval("showtime()",1000);
}
</script>
</head>
<body onload="countTime()">
<div id="text"></div>
</body>
</html>

这里var start=Date.now()让start成为一个全局变量,为什么var c=document.getElementById("text");不能写在 var start=Date.now(); 行下面,使变量 c 成为全局变量?

<html>
<head>
<script type="text/javascript">
var start=Date.now();
var c=document.getElementById("text");
function showtime(){
var nowtime=60-Math.floor((Date.now()-start)/1000);
c.innerHTML="left time is "+ nowtime +" seconds";
}
function countTime(){
c.innerHTML="left time is 60 seconds";
setInterval("showtime()",1000);
}
</script>
</head>
<body onload="countTime()">
<div id="text"></div>
</body>
</html>

请详细说明为什么设置document.getElementById("text");为全局时程序无法运行。

最佳答案

它会工作,但在你的第二个例子中,当脚本运行并试图找到元素时,它不存在,因为你既没有使用 window.onload 也没有把你的脚本在 html 下方。不要将 javascript 放在头部。将代码重新排列为

<html>
<head>

</head>
<body onload="countTime()">
<div id="text"></div>
<script type="text/javascript">
var start=Date.now();
var c=document.getElementById("text");
function showtime(){
var nowtime=60-Math.floor((Date.now()-start)/1000);
c.innerHTML="left time is "+ nowtime +" seconds";
}
function countTime(){
c.innerHTML="left time is 60 seconds";
setInterval("showtime()",1000);
}
</script>
</body>
</html>

它的工作。

关于javascript - 为什么不能将 `document.getElementById("text"); ` 设置为全局?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39815365/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com