2016-02-28 54 views
0

嗨即時得到錯誤「遺漏的類型錯誤:空的無法設置屬性的‘onClick’」我用盡屬性的onclick空的

  • 包裝「的window.onload」在我的代碼
  • 移動在腳本鏈接HTML在

我還沒有發現任何其他解決方案的在線頁面的頂部和底部,

這裏是我的HTML

<!DOCTYPE html> 
<html> 
    <head> 
     <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,300,300italic,700,600' rel='stylesheet' type='text/css'> 
     <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css"> 
    </head> 
    <body>    
     <div class="Contact"> 
      Contact 
      <a class="a3"> 
      <i class="fa fa-chevron-up"></i> 
      </a> 
     </div> 
     <script src = "Script.js"></script> 
    </body> 
</html> 

這裏是我的JS

var arrowThree = document.getElementById("a3"); 

arrowThree.onclick = function(){ 
    alert("You clicked on Contact"); 
}; 

當然,還有更多的我的JS,也是一個CSS文件,但它不

回答

1

您正在使用getElementById這個問題很重要時,有沒有元素與該ID。要做到這一點,你需要一個ID添加到您的元素:

<a id="a3" class="a3"> 

,或者通過類名得到:

var arrowThree = document.getElementsByClassName("a3")[0]; 

然而,類名越來越會返回一個數組 - 警惕這。在我的例子中,我得到了你正在尋找的類的第一個元素,但這可能並不總是正確的。

如果頁面上有多個該類的元素,則不能保證您擁有正確的元素。如果你想添加onClick這些元素的所有,這樣這種方法更適合:

var arrowThrees = document.getElementByClassName("a3"); 
var clickHandler = function(){ 
    alert("You clicked on Contact"); 
} 

for (var i=0; i<arrowThrees.length; i++) { 
    arrowThrees[i].onclick = clickHandler; 
} 

您選擇的方法取決於您是否希望將所有這些元素具有的onClick,或只是一個。

+0

完美我看到我現在得到錯誤,謝謝:) –

+0

沒問題!記得點擊勾號,讓未來的用戶知道這個答案工作! :d – millerbr