javascript类型错误innerHTML [重复]

Posted

技术标签:

【中文标题】javascript类型错误innerHTML [重复]【英文标题】:javascript Type error innerHTML [duplicate] 【发布时间】:2017-11-10 09:35:11 【问题描述】:

我正在编写代码并收到“Uncaught TypeError: Cannot set property 'innerhtml' of null”错误

html

<html>
<head>
<script src ="timer.js"></script>
</head>
<body>
<div id="r"></div>
</body>
</html>

Java 脚本

//window.onload=function()
var start=Date.now(),r=document.getElementById('r');
(function f()
var diff=Date.now()-start,ns=(((3e5-diff)/1000)>>0),m=(ns/60)>>0,s=ns-m*60;
r.textContent="Registration closes in "+m+':'+((''+s).length>1?'':'0')+s+' 
minutes';
document.getElementById('r').innerHTML = result;
if(diff>(3e5))start=Date.now()
setTimeout(f,1000);
)();
//

我只想在html页面上显示结果

【问题讨论】:

我在您的 html 中没有看到 id 为“test”的元素? 我已经编辑了代码,以反映正确的代码 那么你在元素存在之前就引用了它...... 【参考方案1】:

没有id = 'test'的元素

我认为你必须写:

(function f() 
    var start = Date.now(),
    var r = document.getElementById('r');
    var diff = Date.now() - start,
        ns = (((3e5 - diff) / 1000) >> 0),
        m = (ns / 60) >> 0,
        s = ns - m * 60;
    r.textContent = "Registration closes in " + m + ':' + (('' + s).length > 1 ? '' : '0') + s + ' minutes';
    //here the change
    document.getElementById('r').innerHTML = result;
    if (diff > (3e5)) 
        start = Date.now()
    
    setTimeout(f, 1000);
)();

请使用 javascript 缩进。

【讨论】:

别忘了添加正确的代码 我已经编辑了代码以反映正确的代码 我仍然收到未捕获的类型错误:无法将属性“textContent”设置为 null。指 r.textContent 行 我更新了答案 Uncaught TypeError: Cannot set property 'textContent' of null 是它仍然在 r.textContent 行上引用的错误

以上是关于javascript类型错误innerHTML [重复]的主要内容,如果未能解决你的问题,请参考以下文章

错误类型错误:尝试更改标签的 InnerHtml 属性时无法将属性“innerHTML”设置为空(Typescript / HTML / Angular)

如何使用innerHTML插入javascript(ie6给我一个未知的运行时错误)

未捕获的类型错误:无法读取 null 的属性“innerHTML”

未捕获的类型错误:无法将属性“innerHTML”设置为 null

Javascript:: 从 innerHTML 到 appendChild

Javascript 删除所有空的 innerHTML 子元素