【问题标题】:javascript Type error innerHTML [duplicate]javascript类型错误innerHTML [重复]
【发布时间】: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”的元素?
  • 我已经编辑了代码,以反映正确的代码
  • 那么你在元素存在之前就引用了它......

标签: javascript html


【解决方案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 行上引用的错误
猜你喜欢
  • 1970-01-01
  • 2021-04-15
  • 1970-01-01
  • 2012-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-05
  • 1970-01-01
相关资源
最近更新 更多