2016-06-15 97 views
1

我有這個簡單的HTML文件:爲什麼DOM元素爲空?

<!DOCTYPE html> 
<html> 
<head> 
    <script src='test.js'></script> 
</head> 

<body> 
    <p>I am a paragraph tag</p> 
    <h1 >I am an h1 tag</h1> 
    <div id="id"> I am a div tag</div> 
</body> 

而這個簡單的腳本(test.js):

y=document.getElementById("id"); 
y.style.color="green"; 

爲什麼地球上是 「Y」 空?我得到的錯誤是

TypeError: y is null 

我敢肯定,這是我缺少一個簡單的語法的事情,但我不能爲我的生活看着辦吧!幫幫我!

發佈腳本:html文件和test.js文件都在同一個文件夾中。

+0

這個問題一天要問好幾次。將來,請在詢問之前嘗試研究該問題:) – 4castle

+0

您應該使用var語法聲明變量,例如, var y = document ...「最後,你的javascript在元素被加載到dom之前運行,你可以通過將你的javascript包裝在(function(){})中來修復它; –

+0

@ zeros-and-這使得它成爲一個局部變量 –

回答

3

你必須把這個腳本在文件的結尾,當所有元素都被創建:如果您在使用jQuery

<!DOCTYPE html> 
<html> 
<head> 

</head> 

<body> 
    <p>I am a paragraph tag</p> 
    <h1 >I am an h1 tag</h1> 
    <div id="id"> I am a div tag</div> 
</body> 
<script src='test.js'></script> 
+0

嗯......這很奇怪,它很有用,但我以前從來沒有這樣做過,我猜這是因爲我在事件處理程序中使用過它,因此只要文檔加載就不會運行。 –

+0

正確的,如果你想要把它放在你可以使用'window.onload' – CMPS

1

你可以用使用的$(document)你的腳本內容。就緒或者如果使用普通的javascript,window.onload。

+1

我不OP使用[標籤:jQuery的]認爲頂部 – andlrc

+1

@Hector巴伯薩這是奇異拉格斯+ EST問題,,#1是像你一樣決定的人,「放棄它並嘗試jQ uery!「如果問題是*沒有標記jQuery *,那麼*不要用jQuery *回答。 –

+0

對不起,我的壞..我沒有檢查標籤,但我也給了一個簡單的JavaScript解決方案,以及 –

相關問題