开发者问题收集

document.getElementById 返回 null

2010-06-27
1714

相关 HTML 如下:

<div id="navcontainer">
    <ul id="navlist">
        <li><a href="#tab1">Item one</a></li>
        <li><a href="#tab2">Item two</a></li>
        <li><a href="#tab3">Item three</a></li>
        <li><a href="#tab4">Item four</a></li>
        <li><a href="#tab5">Item five</a></li>
    </ul>
</div>

vertical.js 的内容

function tabber() {
    var li = document.getElementById("navcontainer");
    var as = document.getElementById('navlist');

    return;
}

window.onload = tabber();

执行 tabber() 函数时,对 document.getElementById 的函数调用返回 null。为什么?元素 navcontainer 肯定存在。有什么线索吗?

3个回答

嘿,魔鬼藏在细节中。您在分配 onload 事件时犯了一个错误。

window.onload = tabber();

将把 tabber() 的结果 分配给 onload 属性。 Tabber() 会立即执行,而不是 onload

将其更改为

window.onload = function() { tabber(); }

这样就可以了。

Pekka
2010-06-27

您在窗口加载时错误地调用了 tabber 函数。

将其更改为

window.onload = tabber;
Damien Dennehy
2010-06-27

也许您使用 JS 关键字“as”作为变量是一个问题。请先将其删除。

Forrest Voight
2010-06-27