
В этом разделе вы познакомитесь с различными способами поиска дочерних элементов в DOM. Вы узнаете, как получить прямых потомков элемента, как найти всех потомков, а также как фильтровать дочерние элементы по различным критериям. Каждое задание представляет собой практическую задачу, где вам нужно будет применить полученные знания для манипуляции с HTML структурой. Внимательно читайте описание задания и подсказки, если они необходимы, чтобы успешно выполнить каждое упражнение. Удачи!
- Модуль 1: Основы выбора элементов
- Выбор элемента по ID.
- Выбор элементов по классу.
- Выбор элементов по тегу.
- Выбор по селектору CSS.
- Выбор по атрибуту.
- Поиск элементов внутри другого элемента.
- Поиск родительского элемента.
- Поиск соседних элементов (предыдущий, следующий).
- Поиск первого и последнего дочернего элемента.
- Поиск всех дочерних элементов.
- Модуль 2: Манипуляция содержимым
- Модуль 3: Работа с атрибутами
- Модуль 4: Управление классами
- Модуль 5: Управление стилями
- Модуль 6: Создание и удаление элементов
- Создание нового элемента.
- Вставка элемента перед другим элементом.
- Вставка элемента после другого элемента.
- Добавление элемента в определенную позицию внутри списка дочерних элементов.
- Удаление элемента из DOM.
- Замена одного элемента другим.
- Перемещение существующего элемента в другое место DOM..
- Очистка содержимого элемента без его удаления.
- Модуль 7: Обработка событий
- Модуль 8: Работа с формами
- Модуль 9: Продвинутые манипуляции
- Модуль 10: Работа с размерами и прокруткой
- Получение размеров элемента.
- Получение позиции элемента относительно окна браузера.
- Получение позиции элемента относительно родительского элемента.
- Управление прокруткой страницы.
- Определение, виден ли элемент в текущей области просмотра.
- Плавная прокрутка к элементу.
- Создание элемента, который фиксируется при прокрутке.
- Модуль 11: Работа с медиа-элементами
- Модуль 12: Практические задания
Получение прямых дочерних элементов
Найдите все прямые дочерние элементы элемента с id "parent-element" и выведите их количество в консоль.
<div id="parent-element">
<p>Первый прямой потомок</p>
<span>Второй прямой потомок</span>
<div>
<p>Это не прямой потомок</p>
</div>
</div>
const parentElement = document.input__1("parent-element");
const directChildren = parentElement.input__2;
console.log(directChildren.input__3);
Получение всех потомков элемента
Найдите все потомки элемента с id "container" (включая прямых и не прямых) и выведите общее количество найденных элементов в консоль.
<div id="container">
<section>
<article>
<p>Потомок 1</p>
</article>
</section>
<div>
<span>Потомок 2</span>
</div>
</div>
const container = document.input__1("container");
const allDescendants = container.input__2('*');
console.log(allDescendants.input__3);
Фильтрация дочерних элементов по тегу
Найдите все дочерние элементы `<p>` внутри элемента с id "content" и выведите их количество.
<div id="content">
<p>Первый параграф</p>
<div>
<p>Вложенный параграф</p>
<span>Текст</span>
</div>
<p>Второй параграф</p>
</div>
const contentElement = document.input__1("content");
const paragraphChildren = contentElement.input__2('p');
console.log(paragraphChildren.input__3);
Доступ к определенному дочернему элементу
Получите второй прямой дочерний элемент списка `<ul>` с id "list" и измените текст этого элемента на "Второй элемент изменен".
<ul id="list">
<li>Первый элемент</li>
<li>Второй элемент</li>
<li>Третий элемент</li>
</ul>
const listElement = document.input__1("list");
const secondChild = listElement.input__2[1];
secondChild.input__3 = "Второй элемент изменен";
Перебор дочерних элементов
Для каждого прямого дочернего элемента контейнера с id "items-container" добавьте класс "item-child".
<div id="items-container">
<div>Item 1</div>
<div>Item 2</div>
<div>Item 3</div>
</div>
const containerElement = document.input__1("items-container");
const childrenItems = containerElement.input__2;
for (const child of childrenItems) {
child.classList.input__3("item-child");
}
Проверка наличия дочерних элементов
Проверьте, есть ли дочерние элементы у элемента с id "check-element". Если есть, выведите в консоль "Есть дочерние элементы", иначе - "Нет дочерних элементов".
<div id="check-element">
<!-- Дочерних элементов нет -->
</div>
const elementToCheck = document.input__1("check-element");
const hasChildren = elementToCheck.input__2.input__3 > 0;
if (hasChildren) {
console.log("Есть дочерние элементы");
} else {
console.log("Нет дочерних элементов");
}
Поиск дочерних элементов по классу
Найдите все дочерние элементы с классом "special-item" внутри элемента с id "parent-container" и добавьте к их тексту в конце восклицательный знак '!'.
<div id="parent-container">
<div class="item">Обычный элемент</div>
<div class="special-item">Специальный элемент 1</div>
<div class="item">Обычный элемент</div>
<div class="special-item">Специальный элемент 2</div>
</div>
const parentContainer = document.input__1("parent-container");
const specialChildren = parentContainer.input__2('.special-item');
for (const child of specialChildren) {
child.input__3 = child.textContent + "!";
}
Использование `childNodes` для получения всех узлов-детей
Найдите все узлы-дети (включая текстовые узлы и комментарии) элемента с id "node-container" и выведите общее количество узлов в консоль.
<div id="node-container">
<!-- Это комментарий -->
Текст внутри div
<p>Параграф</p>
</div>
const nodeContainer = document.input__1("node-container");
const allNodes = nodeContainer.input__2;
console.log(allNodes.input__3);