2016-02-28 55 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