javascript手动计时器-脚本出现错误:(TypeError:Cannotreadproperty';value';of null)

javascript手动计时器-脚本出现错误:(TypeError:Cannotreadproperty';value';of null),javascript,Javascript,我不明白为什么它不取值,它是给定类型错误,不能在控制台日志中取空值 var seconds=parseInt(document.getElementById('secs').innerHTML); 无功定时器; 函数倒计时(){ var container=document.getElementById('dl'); 秒--; 如果(秒>0){ container.innerHTML='请稍候'+秒+'秒..'; }否则{ container.innerHTML='Time over'; 清除

我不明白为什么它不取值,它是给定类型错误,不能在控制台日志中取空值

var seconds=parseInt(document.getElementById('secs').innerHTML);
无功定时器;
函数倒计时(){
var container=document.getElementById('dl');
秒--;
如果(秒>0){
container.innerHTML='请稍候'+秒+'秒..';
}否则{
container.innerHTML='Time over';
清除间隔(计时器);
}
}

有几件事:

  • input
    元素没有有用的
    innerHTML
    ,它们有

  • 当脚本运行时,您正试图立即读取输入。您希望等待用户单击按钮

  • 您永远不会将间隔的句柄保存到
    计时器

  • 您有两个id为“dl”的元素。文档中只能有一个具有给定
    id
    元素

  • 请参阅下面的注释,其中对每一项进行了更正:

    /#1:等待用户单击按钮,然后读取值
    //注意,我们使用的是现代事件处理,而不是onxyx属性
    document.getElementById(“dl”).addEventListener(“单击”,函数)(){
    //#2:在'input'元素中使用'value',而不是'innerHTML'
    var seconds=parseInt(document.getElementById('secs').value);
    //#3:将间隔的句柄保存为`计时器`
    var定时器=设置间隔(倒计时,1000);
    函数倒计时(){
    var container=document.getElementById('count');
    秒--;
    如果(秒>0){
    container.innerHTML='请稍候'+秒+'秒..';
    }否则{
    container.innerHTML='Time over';
    清除间隔(计时器);
    }
    }
    },假)
    
    
    
    seconds不是一个数字-因为您需要获取输入的.value,而不是.innerHTMLi trued.value。此外,由于您在输入值之前读取了值,因此结果相同。那么我该怎么办?请告诉我。。我尝试了一天,现在使用并学习答案中的代码