2016-06-12 60 views
0

這似乎是一個非常基本的問題,但我不明白爲什麼這是happing。我是JavaScript新手。JS聲明變量和使用getElementById()

當我有做這樣的事情......

<!-- variable defined but not used --> 
var theLeftSide = document.getElementById("leftSide"); 

function generateFaces(){ 
    <!-- some code here --> 
    document.getElementById("leftSide").appendChild(face); 
} 

我沒有問題,和代碼運行。但是,當我使用我聲明的變量時,它不再有效,因爲「theLeftSide爲null」。

這不工作...

<!-- variable declared but not used --> 
var theLeftSide = document.getElementById("leftSide"); 

function generateFaces(){ 
    <!-- some code here --> 
    theLeftSide.appendChild(face); 
} 

這究竟是爲什麼?我想我會把所有相關的代碼放在一起,但如果需要的話,我可以添加它。

+1

你的第一個評論是_wrong_。該變量已定義,未聲明。聲明不包括轉讓。 –

+0

lol oops。謝謝。 –

+0

你應該把你的代碼包裝在'window.onload'中。如果該元素未呈現,並且您嘗試獲取它,它將返回'undefined'。據我瞭解,這是問題 – Rajesh

回答

2

問題不在於變量本身。

代碼中的分配是在DOM準備好之前完成的。

將您的腳本標籤放在文檔正文標籤的末尾,然後嘗試。

+0

非常感謝。這是我第一次使用DOM,教授從來沒有去過這個。我查了一下頭和身體之間的區別,我看到的那些頁面沒有提到。 –