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

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

Вопрос:получил сообщение об ошибке при использовании getElementsByTagName в Js

В консоли> хром-он показывает:

Uncaught TypeError: Object # has no method 'onclick'

Так что это проблема и как это исправить?

+0

добавить индекс массива. [0] в вашем случае – chetan

ответ

2

getElementsByTagName возвращает коллекцию, так что вам нужно сделать:

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

     }; 

Примечание 0 приведет к тому, что первый якорь будет рассмотрен, поэтому используйте индекс соответствующим образом, чтобы выбрать тот, который требуется (если у вас несколько тегов привязки). Также обратите внимание на синтаксис onclick. это свойство не метод. поэтому вам нужно использовать оператор присваивания =, чтобы назначить ссылку обработчика события

+1

Почему голос? – PSL

0

Метод возвращает ковер (HTMLCollection), и он не имеет метода onclick.

Как у вас есть только один элемент, вы можете просто использовать первый элемент из коллекции:

document.getElementsByTagName("a")[0].onclick(function() { 
    alert('Hello!'); 
}); 
Смежные вопросы