2010-06-27 96 views
2

下面是相關的HTML:的document.getElementById被返回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> 

vertical.js

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

    return; 
} 

window.onload = tabber(); 

內容時的焊接設備()被執行函數,該函數調用document.getElementById返回null。爲什麼?元件navcontainer肯定存在。任何線索?

+0

是他們都返回null,或者只是navcontainer? – 2010-06-27 19:23:04

回答

12

嘿,魔鬼在細節中。您在分配onload事件時犯了一個錯誤。

window.onload = tabber(); 

會的tabber()分配結果到onload財產。 Tabber()會立即執行並且不會負載

將其更改爲

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

,將工作。

+9

window.onload = tabber;也適用。 – tcooc 2010-06-27 19:23:51

0

也許事實上,你使用JS關鍵字'as'作爲變量是問題。先刪除。

+0

從什麼時候開始? https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Reserved_Words – 2010-06-27 19:58:45

+0

我想你在想SQL。 – scunliffe 2010-06-27 21:19:13

7

您在窗口加載時錯誤地調用了tabber函數。

將其更改爲

window.onload = tabber; 
相關問題