Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

document.getElementById is returning null

Here's the relevant 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>

The content of vertical.js

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

    return;
}

window.onload = tabber();

When the tabber() function is executed, the function call to document.getElementById returns null. Why? The element navcontainer definitely exists. Any clues?

like image 554
user377531 Avatar asked Mar 05 '26 19:03

user377531


2 Answers

Heh, the devil is in the detail. You are making a mistake while assigning the onload event.

window.onload = tabber();

will assign the result of tabber() to the onload property. Tabber() is executed straight away and not onload.

Change it to

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

that will work.

like image 81
Pekka Avatar answered Mar 08 '26 08:03

Pekka


You're calling the tabber function incorrectly on window load.

Change it to

window.onload = tabber;
like image 21
Damien Dennehy Avatar answered Mar 08 '26 08:03

Damien Dennehy