在js中使用getElementsByTagName时收到错误消息

时间:2013-07-03 01:19:01

标签: javascript

<html>
    <body>
    <div>
      <a href="#">Blah</a>
    </div>
    <script type="text/javascript">
     document.getElementsByTagName("a").onclick(function () {
         alert('Hello!');

      });
    </script>
    </body>
</html>

问题:

在chrome-&gt;控制台中,它显示:

  

未捕获TypeError:对象#没有方法'onclick'

那么问题是什么以及如何解决?

2 个答案:

答案 0 :(得分:2)

getElementsByTagName 会返回一个集合,因此您需要执行以下操作:

document.getElementsByTagName("a")[0].onclick = function () {
         alert('Hello!');

      };

注意0将导致考虑第一个锚点,因此请适当地使用索引来选择所需的索引(如果您有多个锚标记)。 还要注意onclick的语法。它是属性而不是方法。所以你需要使用赋值运算符=来分配事件处理程序引用

答案 1 :(得分:0)

该方法返回一个集合(HTMLCollection),但它没有onclick方法。

由于您只有一个元素,您可以使用集合中的第一个项目:

document.getElementsByTagName("a")[0].onclick(function () {
  alert('Hello!');
});