Цитата:
<input type="submit" value="1" onclick="go()" id="a"> а в js файл ставлю ту же строку: function go() { var elem = document.getElementById('a'); alert(a.getAttribute('value')); } то всё прекрасно работает. Но вызов var a = document.getElementById('a'); a.onclick = go; никак не идёт. |
АндрейD,
скрипт где после input или до? |
Он в прикреплённом файле js. Но я пробовал этот код размещать и в html, после input. Не помогло.
|
Вот пробую, alert показывает, что переменная "a" null. Что то странно.
var a = document.getElementById('a'); alert(a); |
Цитата:
|
Извините за опечатку в приведённом примере - писал его тут по памяти. Вот из редактора:
<input type="submit" value="1" id="a"> var a = document.getElementById('a'); a.onclick = go; function go() { alert(a.getAttribute('value')); } |
АндрейD,
работает? <!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> </head> <body> <input type="submit" value="1" id="a"> <script> var a = document.getElementById('a'); a.onclick = go; function go() { alert(a.getAttribute('value')); } </script> </body> </html> |
Да, работает. Ничего не понимаю - сейчас тоже скопировал свой код из js файла в html и заработало. В чём тогда причина? Уж и 'use strict' удалил. Спасибо за помощь! Вот если бы ещё разобраться - почему из отдельного файла не получается.
|
Дублирую сообщение
Итак, ответ я нашёл в книге "Шаблоны JS". Оказывается размещать ссылку (типа <script src="js/file_js.js"></script>) на прикреплённый файл js в <head> - это худший антишаблон! Правильнее всего прописывать её в конце страницы, перед закрывающим тегом </body>. Я это сделал и всё заработало!
|
АндрейD,
ниче не худший, нормальный шаблон, просто надо понимать как DOM устроен. |
Часовой пояс GMT +3, время: 20:13. |