2012-08-14 89 views
0

我有這個在我的html頁面:搜索element。返回未定義

<nav> 
    <a></a> 
    <a></a> 
</nav> 

但是當我運行var menuitem = document.getElementsByTagName('nav').childNodes; 返回「未定義」。

這裏是整個JavaScript文件,並在最後的相關部分:http://pastebin.com/bVj2Ug4e

我做了什麼錯?

感謝您的幫助!

+4

'getElementsByTagName'返回** NodeList **不是單個元素:https://developer.mozilla.org/en-US/docs/DOM/NodeList – 2012-08-14 13:34:10

+0

即使只有一個? – cmplieger 2012-08-14 13:34:48

+1

此外,這就是整個問題,當您執行此代碼時,您的DOM尚未加載。 – 2012-08-14 13:35:16

回答

5

這可能會爲你工作

var menuitem = document.getElementsByTagName('nav')[0].childNodes; 

爲document.getElementsByTagName(「導航」)將返回節點列表,並確保您在DOM準備好後運行的JavaScript。

+0

那麼[0]是做什麼的?選擇dom樹中的第一個? – cmplieger 2012-08-14 13:39:38

+0

順便說一下它的工作:) – cmplieger 2012-08-14 13:40:30

+0

@SnippetSpace:它選擇'NodeList'的第一個元素。元素的順序是它們出現在樹中的順序。 – 2012-08-14 13:41:00