document.getElementById()
Авторы конспекта:
Предназначение JavaScript
Основная задача JavaScript — "обслуживать" HTML, то есть взаимодействовать с элементами на
веб-странице и манипулировать ими.
Для манипуляций мы используем переменные.
Как мы узнали на прошлом уроке, переменная — это как "ручка", которой мы "хватаемся" за какие-то
данные (например, за строку) с помощью
оператора присваивания]
(=), чтобы потом производить с этими ручками какие-то манипуляции. Конечная цель этих манипуляций
— взаимодействие с элементами HTML.
Два мира: HTML и JavaScript
Мир HTML: "Физическое тело"
Мир HTML — это то, что мы пишем в разметке: теги body, input, hr и т.д. Это статичная
структура, которая описывает, что должно быть на странице.
Мир JavaScript: "Душа"
Мир JavaScript можно разделить на 2 части:
-
Пользовательский
JS(User JS) - это тотJavaScript-код, который мы пишем. Он находится в файле.jsили внутри теговscript. Наш "пользовательский" код дает команды. Он не создает элементы из воздуха, а взаимодействует со средой, которую уже подготовил браузер. -
Браузерный
JS(Browser JS) - это "промежуточная зона" междуHTML-разметкой и нашим кодом. Когда браузер загружает и анализирует (парсит)HTML-страницу, он для каждогоHTML-тега создает в памяти специальныйJavaScript-объект. Этот объект является "зеркальным отражением" или "душой" HTML-элемента.
Эта коллекция объектов, созданная браузером, называется DOM (Document Object Model).
Взаимодействие JavaScript и HTML основано на манипуляции объектом DOM, где JavaScript
изменяет структуру и содержимое HTML-страницы для добавления интерактивности и динамичности.
Поиск Элементов в HTML-документе
Первая и важнейшая операция, которую выполняет JavaScript для взаимодействия с HTML — это поиск
нужного элемента.
Чтобы JS мог однозначно найти конкретный элемент среди множества других, этому элементу необходим
уникальный идентификатор.
Атрибут ID
ID - это
глобальный HTML-атрибут, который присваивает элементу уникальный идентификатор, используемый для
его стилизации через CSS и манипулирования им с помощью JavaScript.
Основные правила именования id:
-
Каждое значение
IDдолжно быть уникальным в пределах всейHTML-страницы -
Имя должно начинаться с латинской буквы (A-Z или a-z), знака подчеркивания (
_) или знака доллара ($) -
Далее в имени могут следовать буквы, цифры (0-9), знаки подчеркивания (
_) или знак доллара ($) -
Идентификаторы не могут содержать пробелы, тире или другие специальные символы (кроме подчеркивания и доллара)
-
Имена идентификаторов регистрозависимы (т.е.
Nameиname— разные идентификаторы) - Нельзя использовать ключевые и зарезервированные словаJavaScript, такие какvar,function,if,whileи др. -
Имя для
idдолжно быть осмысленным и четко отражать назначение элемента (например,mainContentдля основного содержимого страницы илиproductPriceдля цены товара) -
Используйте нижний регистр для первых слов и верхний регистр для начала каждого последующего слова (
Camel case) (например,getUserData,calculateSum) -
Имя должно быть легко понятно другим разработчикам, работающим с вашим кодом
Глобальные объекты window и document
Для доступа к элементам страницы существует четкая иерархия объектов, которая начинается с
глобального объекта window.
window — это глобальный
объект, который создает сам браузер. Он предоставляет доступ к глобальной области видимости и
функциям, таким как alert() или console. Все глобальные переменные и функции, объявленные в
JavaScript-коде браузера, автоматически становятся свойствами и методами объекта window, хотя
обращаться к ним можно без явного указания window.
Внутри объекта window существует ключевое свойство document (доступное как window.document).
document - это точка входа в DOM.
Поскольку document используется постоянно, обращение к нему почти всегда происходит напрямую, без
префикса window.
Метод getElementById
У объекта document есть специальный метод getElementById(). Этот метод просматривает всё
DOM-дерево и возвращает первый найденный HTML-элемент, атрибут id которого в точности
совпадает с указанной строкой.
Практика
Шаг 1: Объявление переменных
Сначала мы готовим «коробки» (переменные) для хранения данных.
Шаг 2: Поиск элемента в DOM
Вызываем метод getElementById() и сохраняем результат его работы (возвращенный объект-элемент) в
переменную.
Шаг 3: Шаг 3: Взаимодействие с элементом
После того как мы нашли элемент и сохранили его в переменную, мы можем читать значения его атрибутов, обращаясь к ним через точку.
-
✅ Атрибут
valueвHTMLсоответствует свойству.valueвJS-объекте. С его помощью можно получить текст, введенный в полеinput. -
✅ Атрибут
idсоответствует свойству.id. -
❌ Атрибут
classвHTMLсоответствует свойству.classNameвJS-объекте (❗ не.class).
Debugging
Если скрипт перестал работать (например, не появляется alert), скорее всего, в коде есть ошибка.
Откройте Инструменты разработчика (F12) и посмотрите во вкладку Console.

Cannot read property 'value' of null - означает, что вы пытаетесь получить свойство .value у
переменной, которой присвоен null.
null в данном контексте означает, что document.getElementById() не нашел элемент с указанным
id (вероятно, из-за опечатки в id) и поэтому вернул "ничего".
Используйте точки останова (breakpoints), чтобы пошагово выполнить код и посмотреть значения
переменных в каждый момент времени.
Отладка (debugging) является критически важным навыком, потому что код не всегда работает так,
как ожидается, и необходимо уметь находить и исправлять ошибки.
🏠 Домашнее задание
Работа с формами и атрибутами в JavaScript
Для чего JS вообще нужен? Одна из главных на сегодня задач - для работы с HTML.
Представьте, что у нас есть форма логина:
- вводим email
- вводим пароль
- ставим галочку ЗАПОМНИТЬ МЕНЯ если хотим
- Жмём кнопку Log In

Что произойдёт на 4 шаге?
На 4 шаге JavaScript код должен:
- взять все эти введенные значения
- собрать их в кучу
- отправить на сервер
Для нас пока важен первый пункт!
Что нужно, чтобы взять все эти введённые значения?
- Нужно найти html-элемент
- Нужно прочитать значение какого-либо атрибута этого элемента (например
valueилиchecked)
Поэтому ВАЖНО уметь находить элементы и анализировать их (считывать свойства/атрибуты).
Обучение
Давайте учиться искать элементы и анализировать, что они из себя представляют!
Данное задание нужно делать после просмотра 1–8 видео из плейлиста: YouTube Playlist
Скопируйте следующий код к себе в index.html:
Задачи
- Вывести в консоль значение атрибута class для найденного
firstNameEl - Добавьте в HTML ещё 2 input для
lastNameи адреса - Заполните
valueв HTML своими данными - Выведите эти value с помощью JS
- Добавьте в HTML тег select, опции:
moscow,minsk,kiev - Для
optionсо значениемminskдобавьте атрибут selected - Найдите
selectчерез JS и выведите его value
У тега
selectв HTML атрибутаvalueнет, но у его DOM-объекта свойство есть и оно равно value выбраннойoption.
- У
optionможет быть, а может и не бытьvalue
- если есть → значением считается оно (
value="m") - если нет → значением будет
innerHTML(текст внутри тега)
Пример:
- Добавьте на страницу textarea и заполните его текстом (ваши хобби)
- Найдите textarea через JS и выведите его value
- Выведите в консоль innerHTML textarea
Вывод: textarea.innerHTML === textarea.value
- Добавьте div, внутри него картинку (
img) сsrcна вашу аватарку - Найдите этот div через JS и выведите его
value→ результат: undefined - Запомните: value есть только у input, select, textarea
- Выведите в консоль innerHTML у div
- Выведите в консоль innerHTML у select (увидите список option как текст)
- Найдите
imgи выведите в консоль еёsrcиalt
Полезные свойства
Форма логина ⭐
⭐ Дополнительное задание со звездочкой. Проделывать по желанию.

Задание 1. Сверстайте форму
Центрируйте форму посередине. Оберните теги в div, задайте стили:
Задание 2. Добавьте JS-логику
После ввода данных, отметки чекбокса и нажатия кнопки Log In, выведите сообщение:
Для этого найдите элементы и прочитайте значения их атрибутов. Код пишите внутри конструкции:


