繁体   English   中英

Javascript递归函数变量null

[英]Javascript recursive function variable null

我正在尝试测试一个简单的递归函数来制作倒数计时器。 到目前为止,我有这个javascript函数:

setInterval(run_countdown("1"),1000);

function run_countdown(num) {
    var str = document.getElementById(num).innerHTML; 
    if(str === 0){
        str = 59;
        num = num + 1;
        run_countdown(num)
    } 
    var minus = str - 1;
    var res = str.replace(str,minus);
    document.getElementById(num).innerHTML=res;
    return;
};

这是浏览器中的标记:

<table border="0">
    <tbody>
        <tr>
            <td id="6">00</td>
            <td id="5">00</td>
            <td id="4">08</td>
            <td id="3">02</td>
            <td id="2">42</td>
            <td id="1">02</td>
        </tr>
        <tr>
            <th>Years</th>
            <th>Months</th>
            <th>Days</th>
            <th>Hours</th>
            <th>Minutes</th>
            <th>Seconds</th>
        </tr>
    </tbody>
</table>

当我在浏览器中运行该页面时,我在控制台中得到了一个错误,提示第一个getElementById出现“未捕获的TypeError:无法读取null的'innerHTML'属性”。 我对num发出了警报,它似乎没问题。 不太清楚我要去哪里。

正如Elchlanrs所说,setInterval需要一个函数引用。 尝试

setInterval(function(){
  run_countdown("1");
}, 1000);

这将等待一整秒钟,然后再调用run_countdown(“ 1”),大概是允许您的文档在执行之前完成加载,这应该可以修复错误。

您需要等待页面加载完毕:

document.onload = function() {
    setInterval(run_countdown("1"),1000);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM