2013-11-29 45 views
0

我正在從「專業的Javascript for Web開發人員」學習JS,我無法使用DOM樹,因爲它似乎不工作。JavaScript - 所有DOM操作函數都返回null/empty?

下面是我在本地測試的例子:

http://jsfiddle.net/y5nfL/

它提醒上的jsfiddle 「DIV」,而本地我得到這個在控制檯:

Uncaught TypeError: Cannot read property 'tagName' of null

這裏是我的index.html:

<!DOCTYPE html> 
<html> 
    <head> 
     <meta charset="utf-8" /> 
     <title>JS sandbox</title> 
     <script type="text/javascript" src="script.js"></script> 
    </head> 
    <body> 
     <div id="myDiv"></div> 
    </body> 
</html> 

and script.js

var div = document.getElementById("myDiv"); 
alert(div.tagName); 

我錯過了什麼?我一直在嘗試其他的東西,如克隆等,但getElementById()每次都返回空值...

回答

4

當您的腳本執行時,DOM不包含腳本標記之後的任何內容。在嘗試訪問DOM之前,您需要等待DOM完全準備就緒。

另一個更簡單的選擇是在</body>之前將腳本標記移動到文檔的最後。

+2

哦,上帝,我太愚蠢了:)非常感謝,甚至在編輯之前,在正文結束標記之前移動腳本。非常感謝! – Wordpressor

+1

對不起,只好+1評論... ;-) – RobG

+0

哈哈,沒關係,我唯一的藉口是 - 我還在學習,畢竟,雖然我有點失望,我無法弄清楚我自己的。 – Wordpressor