2012-10-16 138 views
2

我正在從「Simply JavaScript」這本書開始工作,並且在第68-69頁上有一個我無法運行的例子。我從書中複製了它,並且正在和一位同學一起工作。我認爲在這個例子中必須存在一個編碼錯誤,並希望有人能夠真正快速地查看它並給我們一些指導。Javascript警告不顯示

從我所理解的腳本應該引起一個警告框彈出,並顯示節點名(按書應該只是a

下面是HTML

<!doctype html> 

<head> 
<script type="text/javascript" src="script.js"></script> 
<meta charset="utf-8"> 

<title> 
Stupid Title 
</title> 
</head> 

<body> 

<h1> 
Sniper (1998) 
</h1> 

<p> 
In this cinema masterpiece 
<a id ="berenger" href="name/nm0000297/">tom Berenger</a> plays a us soldier working in the Panamanian Jungle. 
</p> 
</body> 

而且這是我的JavaScript

alert("AAAAAAAAAAAAAAHH"); 

var target = document.getElementById("berenger"); 
if (target != null) 
    alert(target.nodeName); 

這是我第二週的JavaScript課,所以我很新。

+1

最後,我認爲你應該嘗試找出問題,因爲這是家庭作業,爲什麼不看你的js文件的路徑 – Ibu

+1

我已經從你的代碼中創建了一個小提琴,它的工作原理是我理解它應該:http://jsfiddle.net/d5w6j/ –

+2

@MattStone我已更新你的小提琴實際上墊問題 - http://jsfiddle.net/d5w6j/1/ – Phil

回答

7

DOM是不準備在這一點上:

<script type="text/javascript" src="script.js"></script> 

移到該行的<body>

Read about those kind of issues in this docs

+0

謝謝,這確實解決了它。這是一件普通的事情嗎?我之所以問,是因爲到目前爲止,本書已經顯示將代碼放在頂部(我擁有它的地方),我只是想知道將來的項目應該放在底部嗎?再次感謝! –

+0

正確的做法是將你的代碼放在一個函數中,並使用' yourfunction()>>'調用它。這確保了它在DOM完成加載之前不會運行。 – Barmar

+0

@JeremyB。這是比你想象的更復雜的問題......有些人更喜歡這種方式,而有些人更喜歡其他方式。谷歌它一點。 – gdoron