2010-06-27 11 views
2

est ici le code HTML correspondant:document.getElementById retourne null

<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> 

Le contenu de vertical.js

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

    return; 
} 

window.onload = tabber(); 

Lorsque la fonction tabber() est exécutée, l'appel de fonction à document.getElementById renvoie la valeur null. Pourquoi? L'élément navcontainer existe définitivement. Des indices? Peut-être que le fait que vous utilisiez le mot-clé JS 'as' comme variable est le problème rencontré par le

+0

sont-ils à la fois renvoyer la valeur null, ou tout simplement navcontainer? –

Répondre

12

Heh, le diable est dans le détail. Vous faites une erreur en affectant l'événement onload.

window.onload = tabber(); 

va affecter le résultat de tabber() à la propriété onload. Tabber() est exécuté immédiatement et non en charge.

Modifier à

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

qui fonctionne.

+9

window.onload = tabber; fonctionne aussi. – tcooc

0

enlever ça en premier.

+0

Depuis quand? https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Reserved_Words –

+0

Je pense que vous pensez à SQL. – scunliffe

7

Vous appelez incorrectement la fonction de tabulation lors du chargement de la fenêtre.

Modifier à

window.onload = tabber; 
Questions connexes