document.getElementById返回null

时间:2010-06-27 19:18:14

标签: javascript null return getelementbyid

以下是相关的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 个答案:

答案 0 :(得分:12)

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

window.onload = tabber();

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

将其更改为

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

这将有效。

答案 1 :(得分:7)

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

将其更改为

window.onload = tabber;

答案 2 :(得分:0)

也许您将JS关键字'as'用作变量这一事实就是问题所在。首先删除它。