开发者问题收集

无法读取 null 的属性 *0*

2014-02-03
48934

我遇到此错误“无法读取null的属性'0”。代码>

somename.js

642415995

编辑:如果我删除[0]“无法读取null的属性'样式'

新错误

3个回答
如果文档中没有匹配项,

getElementById 将返回 null 。(这会导致出现您的错误消息)。

这意味着您的选择器中存在拼写错误,或者在将元素包含到 dom 之前执行了 html 或 js。

此外, getElementById 返回单个元素而不是数组(准确地说是 Node List ),因此正确的调用应为:

document.getElementById('td1').style.color = 'blue';

第三个问题:

setInterval(test(),1000);
//              /\
// this will immeditately execute the function and
// hands over the *return value* to setInterval

无法按预期工作,需要

setInterval(test,1000);
//            /\
// hand over the *function reference* to be executed after 1 second
Christoph
2014-02-03

如果你的 id 是唯一的,那么这将有效

document.getElementById('td1').style.color = 'blue';
Karthick Kumar
2014-02-03

调用 setInterval 时,必须提供一个函数。您立即调用该函数,而不是将函数传递给 setInterval 。它应该是:

setInterval(test, 1000);

由于您立即调用它,因此它在 DOM 完全加载之前运行,并且未找到 td1 元素。因此 getElementById 返回 null 而不是元素。

此外,正如其他答案指出的那样,您不应使用 [0] 来访问 getElementById 返回的元素。它返回单个元素,而不是 NodeList

Barmar
2014-02-03