2012-11-15 49 views
0

這裏是我的網站的鏈接,您可以通過Firebug訪問代碼,而不是粘貼在這裏。 www.chrismazzochi.comJavaScript getElementById只針對一個頁面

我不明白爲什麼我能夠影響我的H1我的「接觸」頁面上標題爲「克里斯Mazzochi網頁設計」 ID爲「品牌」,但 3其他頁面與具有相同ID的相同h1。那些不受影響的頁面是'主頁','關於'和'投資組合'頁面。我聽過人們推薦使用getElementByClassName,但getElementById適用於我所定位的所有其他元素。

總之,getElementById只有一個頁面的一個元素id被定位,而另外三個頁面上的相同id的元素沒有受到影響。爲什麼?

請幫助JavaScript嚮導。我將不勝感激。 謝謝, 克里斯

+1

查看這個文件,輕鬆實現** ** scripts1.js線41這是你'錯誤不能設置屬性「的onmouseover」無效的和'這就是爲什麼它不起作用。 – Boris

回答

0

問題不是你不能有效地使用document.getElementById('brand'),問題是,當你編寫這樣做的代碼,該代碼永遠不會執行。

在它到達document.getElementById('fieldset')之前它返回null。然後我們使用它的結果來執行一個函數,這會導致錯誤,因爲你不能在null上執行函數。

由於這個錯誤造成的,腳本的其餘部分被跳過,並與品牌作爲位ID從未發生過......

既然你提到使用Firebug了,我會假設你都知道的錯誤,所以我們會讓答案爲「錯誤導致腳本的其餘部分不被執行」。人們也可能會注意到,這並不總是會發生。當一個事件發生錯誤時,只有該事件的其餘部分纔會被執行,而當正常執行腳本時發生錯誤時,整個腳本的其餘部分將被跳過。

1

這段JavaScript代碼的整個部分是在顏色之間「切換」。

var myAside = document.getElementById ("brand"); 
myAside.onmouseout = function() { 
document.getElementById("brand").style.color = "blue"; 
//alert ("You're awesome!");} 

可以用

#wrapper nav a:hover { 
    color: blue;} 
相關問題