document.getElementById返回null

use*_*531 2 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>
Run Code Online (Sandbox Code Playgroud)

vertical.js的内容

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

    return;
}

window.onload = tabber();
Run Code Online (Sandbox Code Playgroud)

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

Pek*_*ica 12

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

window.onload = tabber();
Run Code Online (Sandbox Code Playgroud)

将分配结果tabber()onload财产.Tabber()是直接执行而不是onload.

将其更改为

window.onload = function() { tabber(); }
Run Code Online (Sandbox Code Playgroud)

那可行.


Dam*_*ehy 7

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

将其更改为

window.onload = tabber;
Run Code Online (Sandbox Code Playgroud)