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

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

问题:

在 chrome->console 中,它显示:

Uncaught TypeError: Object # has no method 'onclick'

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

4

2 回答 2

2

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

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

      };

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

于 2013-07-03T01:21:37.473 回答
0

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

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

document.getElementsByTagName("a")[0].onclick(function () {
  alert('Hello!');
});
于 2013-07-03T01:21:32.600 回答