无法读取 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