2010-06-27 65 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; 
相关问题