Сейчас мы с вами научимся получать DOM элементы страницы, чтобы в дальнейшем производить с ними какие-нибудь манипуляции.
Пусть у нас есть некоторая кнопка:
<input id="button" type="submit">
Давайте получим ссылку на эту кнопку в переменную.
Для этого следует использовать метод querySelector
специального объекта document
. Этот
метод параметром принимает CSS селектор и
возвращает ссылку на найденный по этому селектору
элемент.
У нашей кнопочки есть атрибут id
со
значением button
. Значит, мы можем
найти это кнопку по селектору #button
.
Итак, давайте найдем нашу кнопочку и запишем
ссылку на нее в переменную:
let button = document.querySelector('#button');
console.log(button);
Даны 3
абзаца:
<p id="elem1">1</p>
<p id="elem2">2</p>
<p id="elem3">3</p>
Запишите ссылку на каждый из абзацев в отдельную переменную и выведите содержимое каждой из этих переменных в консоль.
Более сложные селекторы
Давайте сделаем что-нибудь более сложное. Пусть, к примеру, у нас есть вот такой HTML код:
<div id="parent">
<input>
</div>
Давайте получим ссылку на инпут, находящийся
внутри блока #parent
:
let elem = document.querySelector('#parent input');
console.log(elem);
Как вы видите, мы получили наш инпут по селектору
#parent input
. На самом деле под этот
CSS селектор попадают все инпуты, находящиеся
в #parent
.
Пусть, к примеру, у нас два таких инпута:
<div id="parent">
<input value="1">
<input value="2">
</div>
Тогда, если написать селектор #parent
input
в CSS коде, он затронет оба наших
инпута:
#parent input {
color: red;
}
Метод querySelector
, однако, работает
не так. Он всегда получает только один элемент
- первый, попавший под указанный селектор.
Давайте посмотрим на примере. Пусть у нас
есть инпуты с классом elem
:
<input class="elem">
<input class="elem">
Давайте получим первый из этих инпутов:
let elem = document.querySelector('.elem');
console.log(elem); // здесь будет первый инпут
Дан следующий HTML:
<div id="block">
<p>1</p>
<p>2</p>
</div>
Получите ссылку на первый абзац из дива с
id
, равным block
.
Дан следующий HTML:
<div class="block">
<p>1</p>
<p>2</p>
</div>
Получите ссылку на первый абзац из дива с
классом block
.
Дан следующий HTML:
<p class="www">text</p>
<p class="www">text</p>
Получите ссылку на первый абзац с классом
www
.