
В этом уроке вы изучите различные способы поиска элементов DOM, которые находятся внутри других элементов. Вы начнете с простых методов, таких как поиск по ID и классу внутри body, а затем перейдете к более сложным сценариям, включая поиск внутри вложенных элементов, использование свойств children и parentElement, а также методов closest(), nextElementSibling и querySelectorAll() для фильтрации элементов. Каждое упражнение предназначено для закрепления определенного аспекта поиска элементов и поможет вам стать увереннее в работе с DOM.
- Модуль 1: Основы выбора элементов
- Выбор элемента по ID.
- Выбор элементов по классу.
- Выбор элементов по тегу.
- Выбор по селектору CSS.
- Выбор по атрибуту.
- Поиск элементов внутри другого элемента.
- Поиск родительского элемента.
- Поиск соседних элементов (предыдущий, следующий).
- Поиск первого и последнего дочернего элемента.
- Поиск всех дочерних элементов.
- Модуль 2: Манипуляция содержимым
- Модуль 3: Работа с атрибутами
- Модуль 4: Управление классами
- Модуль 5: Управление стилями
- Модуль 6: Создание и удаление элементов
- Создание нового элемента.
- Вставка элемента перед другим элементом.
- Вставка элемента после другого элемента.
- Добавление элемента в определенную позицию внутри списка дочерних элементов.
- Удаление элемента из DOM.
- Замена одного элемента другим.
- Перемещение существующего элемента в другое место DOM..
- Очистка содержимого элемента без его удаления.
- Модуль 7: Обработка событий
- Модуль 8: Работа с формами
- Модуль 9: Продвинутые манипуляции
- Модуль 10: Работа с размерами и прокруткой
- Получение размеров элемента.
- Получение позиции элемента относительно окна браузера.
- Получение позиции элемента относительно родительского элемента.
- Управление прокруткой страницы.
- Определение, виден ли элемент в текущей области просмотра.
- Плавная прокрутка к элементу.
- Создание элемента, который фиксируется при прокрутке.
- Модуль 11: Работа с медиа-элементами
- Модуль 12: Практические задания
Поиск элемента по классу внутри div
Найдите первый элемент с классом `highlight` внутри div с идентификатором `content` и добавьте ему стиль, изменяющий цвет фона на желтый.
<div id="content">
<ul>
<li class="highlight">Пункт 1</li>
<li>Пункт 2</li>
</ul>
</div>
const contentDiv = document.input__1('content');
const highlightedItem = contentDiv.input__2('.highlight');
highlightedItem.style.input__3 = 'yellow';
Поиск всех элементов по тегу внутри контейнера
Найдите все элементы `li` внутри элемента с классом `list-container` и выведите количество найденных элементов в консоль.
<div class="list-container">
<ul>
<li>Элемент 1</li>
<li>Элемент 2</li>
<li>Элемент 3</li>
</ul>
</div>
const container = document.input__1('.list-container');
const listItems = container.input__2('li');
console.input__3(listItems.length);
Вложенный поиск: класс внутри класса
Внутри элемента с классом `outer` найдите элемент с классом `inner` и измените его текст на "Найден вложенный элемент!".
<div class="outer">
<div class="inner">
<p>Изначальный текст</p>
</div>
</div>
const outerElement = document.input__1('.outer');
const innerElement = outerElement.input__2('.inner');
innerElement.input__3 = 'Найден вложенный элемент!';
Доступ к дочерним элементам через children
Получите доступ ко второму дочернему элементу `ul` внутри div с ID `parent` и добавьте ему класс `child-element`.
<div id="parent">
<ul>
<li>Первый список</li>
</ul>
<ul>
<li>Второй список</li>
</ul>
</div>
const parentElement = document.input__1('parent');
const secondChild = parentElement.input__2[input__3];
secondChild.classList.input__4('child-element');
Переход к родительскому элементу и поиск внутри него
Начиная с элемента с классом `child`, перейдите к его родительскому элементу и найдите внутри него элемент `span`. Измените текст найденного `span` на "Найден родительский span!".
<div id="grandparent">
<div id="parent-container">
<p class="child">Дочерний элемент</p>
<span>Изначальный текст span</span>
</div>
</div>
const childElement = document.input__1('.child');
const parentElement = childElement.input__2;
const spanElement = parentElement.input__3('span');
spanElement.input__4 = 'Найден родительский span!';
Поиск ближайшего родительского элемента с помощью closest()
Начиная с элемента с классом `target`, найдите его ближайший родительский элемент с классом `container` и добавьте этому родителю класс `found-container`.
<div class="container">
<section>
<p class="target">Целевой элемент</p>
</section>
</div>
<div class="other-container">
<p class="target">Другой целевой элемент</p>
</div>
const targetElement = document.input__1('.target');
const containerElement = targetElement.input__2('.container');
containerElement.classList.input__3('found-container');
Поиск следующего соседнего элемента
Найдите параграф с ID `startParagraph`, затем перейдите к его следующему соседнему элементу и измените его текст на "Это следующий элемент!".
<div id="container">
<p id="startParagraph">Начальный параграф</p>
<p>Соседний параграф</p>
</div>
const startElement = document.input__1('startParagraph');
const nextElement = startElement.input__2;
nextElement.input__3 = 'Это следующий элемент!';