2012-05-21 3 views
1

, поэтому я только начал изучать JavaScript. Когда я нажимаю «Click Me!», Мое окно предупреждения не появляется!При нажатии на ссылку отображать окно предупреждения?

<!DOCTYPE html> 

<html lang="en"> 
<head> 

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
    <title>JAVASCRIPT</title> 

</head> 
<body> 

    <a href="#" id="anchor">Click Me!</a> 

    <script type="text/javascript"> 

     var anchor = getElementById('anchor'); 
     // or anchor = getElementsByTagName('a') then do ('a')[0] 

     anchor.addEventListener('click', doSomething, false); 

     function doSomething() { 
      alert('clicked'); 
     } 

    </script> 

</body> 
</html> 
+1

Это потому, что вы должны использовать 'document.getElementById' и не только' getElementById' ... Движок Javascript просто поднимает ecception и останавливает выполнение. – MaxArt

+0

Не тратьте время на API DOM. Используйте jQuery: http://jquery.com/. – knut

+0

Упс! Благодарю. Кроме того, знает ли кто-нибудь хорошее место для изучения JavaScript? Я использую JavaScript из серии NULL tutsplus, но предпочитаю что-то текстовое. – eveo

ответ

4

Вы забыли document. на линии с getElementById:

var anchor = document.getElementById('anchor'); 
0

getElementById является метод document объекта, а не глобальная функция.

Изменить его document.getElementById('anchor');

(Есть ли у более полезный запасной вариант, то href="#", хотя для реальной страницы, хотя)

0

Более быстрый партизанским подходом будет:

<a href="javascript:;" onclick="alert('clicked')">Click Me!</a> 

В целом, хотя добавление встроенного JS-кода не рекомендуется, поскольку оно влияет на ремонтопригодность. Это было бы лучше. Обратите внимание, что нет необходимости использовать document.getElementById(), поскольку вы можете получить ссылку на элемент из «this».

<a href="javascript:;" onclick="my_function(this)">Click Me!</a> 

<script> 
my_function = function(elem) { 
    //elem points to anchor element clicked 
} 
</script> 
Смежные вопросы