为什么这个 JS 倒计时不起作用?

Why this JS countdown doesn't work?

<script type="text/javascript">
function countdown(seconds, element)
{
    var count = seconds;
    var counter= setInterval(timer, 1000);

    function timer()
    {
        count--;
        if (count <= 0)
        {
            clearInterval(counter);
            return;
        }   
        element.innerHTML = "Seconds remaining: " + count;
    }
}
</script>


<h1 onload="countdown(100, this)"></h1>

那么为什么调用标签的 innerHTML 没有改变? 我看到了其他代码,但我在这里没有看到任何错误。 我是 JS 编码的新手。

onload 功能可以用在 <body> 标签上,它似乎对其他标签不起作用。尝试将其添加到 <body>

function countdown(seconds, element)
{
  var count = seconds;
  var counter= setInterval(timer, 1000);
  function timer()
   {
     count--;
     if (count <= 0)
     {
      clearInterval(counter);
      return;
     } 
     element.innerHTML = "Seconds remaining: " + count;
     //console.log(count);
   }
}

h1List=document.getElementsByTagName("h1");
  for(i=0;i<h1List.length;i++){
     countdown(100-i*3, h1List[i]);
  }
//countdown(100, document.getElementsByTagName("h1")[0]);
<h1></h1>
<h1></h1>
<h1></h1>
<h1></h1>
<!--<body onload="countdown(100,document.getElementsByTagName(`h1`)[0])">-->

<script type="text/javascript">
function countdown(seconds)
{
var count = seconds;
var counter= setInterval(timer, 1000);

function timer()
{
count--;
if (count <= 0)
{
clearInterval(counter);
return;
}   
document.getElementById("timer").innerHTML = "Seconds remaining: " + count;
}}
</script>

<body onload="countdown(100)">
<h1 id="timer"></h1>
</body>

如果你想运行页面加载事件计时器

,请检查这个