
В этом разделе вы попрактикуетесь в динамическом изменении HTML-структуры страницы с помощью JavaScript. Вы научитесь вставлять новые элементы перед существующими элементами, используя различные методы DOM API. Каждое задание предоставит вам готовый HTML и JavaScript код с пропусками. Ваша задача - заполнить пропуски в JavaScript коде, чтобы выполнить поставленную задачу и увидеть результат на экране. Упражнения расположены от простого к сложному, начиная с базовых операций и заканчивая более комплексными сценариями.
- Модуль 1: Основы выбора элементов
- Выбор элемента по ID.
- Выбор элементов по классу.
- Выбор элементов по тегу.
- Выбор по селектору CSS.
- Выбор по атрибуту.
- Поиск элементов внутри другого элемента.
- Поиск родительского элемента.
- Поиск соседних элементов (предыдущий, следующий).
- Поиск первого и последнего дочернего элемента.
- Поиск всех дочерних элементов.
- Модуль 2: Манипуляция содержимым
- Модуль 3: Работа с атрибутами
- Модуль 4: Управление классами
- Модуль 5: Управление стилями
- Модуль 6: Создание и удаление элементов
- Создание нового элемента.
- Вставка элемента перед другим элементом.
- Вставка элемента после другого элемента.
- Добавление элемента в определенную позицию внутри списка дочерних элементов.
- Удаление элемента из DOM.
- Замена одного элемента другим.
- Перемещение существующего элемента в другое место DOM..
- Очистка содержимого элемента без его удаления.
- Модуль 7: Обработка событий
- Модуль 8: Работа с формами
- Модуль 9: Продвинутые манипуляции
- Модуль 10: Работа с размерами и прокруткой
- Получение размеров элемента.
- Получение позиции элемента относительно окна браузера.
- Получение позиции элемента относительно родительского элемента.
- Управление прокруткой страницы.
- Определение, виден ли элемент в текущей области просмотра.
- Плавная прокрутка к элементу.
- Создание элемента, который фиксируется при прокрутке.
- Модуль 11: Работа с медиа-элементами
- Модуль 12: Практические задания
Вставка абзаца перед заголовком
Добавьте новый абзац текста перед существующим заголовком на странице. Используйте JavaScript для создания нового элемента абзаца и вставьте его в DOM перед элементом с идентификатором "main-heading".
<div id="container">
<h1 id="main-heading">Главный заголовок</h1>
</div>
const newParagraph = document.input__1('p');
newParagraph.textContent = "Это новый абзац.";
const heading = document.input__2('main-heading');
const parentElement = heading.input__3;
parentElement.input__4(newParagraph, heading);
Вставка элемента списка перед первым элементом
Добавьте новый элемент списка в начало неупорядоченного списка. Создайте новый элемент `<li>` с текстом "Новый элемент списка" и вставьте его перед первым элементом списка.
<ul id="myList">
<li class="list-item">Первый элемент</li>
<li class="list-item">Второй элемент</li>
</ul>
const list = document.input__1('myList');
const firstListItem = list.input__2('li');
const newListItem = document.createElement('li');
newListItem.textContent = "Новый элемент списка";
list.input__3(newListItem, input__4);
Вставка элемента перед элементом с классом
Вставьте новый абзац перед элементом с классом "highlight". Используйте `querySelector` для выбора элемента перед которым нужно вставить новый абзац.
.highlight {
background-color: yellow;
}
<div id="container">
<p>Обычный абзац</p>
<p class="highlight">Этот абзац выделен</p>
<p>Еще один абзац</p>
</div>
const highlightedElement = document.input__1('.highlight');
const newParagraph = document.input__2('p');
newParagraph.textContent = "Новый абзац перед выделенным.";
const parent = highlightedElement.input__3;
parent.input__4(newParagraph, highlightedElement);
Вставка стилизованного элемента перед кнопкой
Создайте новый элемент `div` с красным фоном и текстом "Важное сообщение" и вставьте его перед кнопкой на странице.
<button id="myButton">Нажми меня</button>
const button = document.input__1('myButton');
const newDiv = document.createElement('div');
newDiv.textContent = "Важное сообщение";
newDiv.style.input__2 = "red";
const parent = button.input__3;
parent.input__4(newDiv, button);
Вставка изображения перед списком
Вставьте изображение перед неупорядоченным списком. Используйте URL изображения из предоставленных ресурсов. Задайте атрибут `src` для нового элемента `img` и вставьте его перед списком с ID "image-list".
<ul id="image-list">
<li>Элемент списка 1</li>
<li>Элемент списка 2</li>
</ul>
const listElement = document.input__1('image-list');
const newImage = document.createElement('img');
newImage.src = "https://naytikurs.ru/assets/uploads/2025/03/3d-modelirovanie-i-vizualizatsiya-test-dlya-spetsialistov-v-trehmernoj-grafike-300x300.png";
const parent = listElement.input__2;
parent.input__3(newImage, listElement);
Вставка элемента в определенную позицию внутри родителя
Вставьте новый абзац перед вторым абзацем внутри контейнера. Используйте `querySelectorAll` для получения всех абзацев внутри контейнера и вставьте новый абзац перед вторым элементом полученной коллекции.
<div id="text-container">
<p>Первый абзац</p>
<p>Второй абзац</p>
<p>Третий абзац</p>
</div>
const container = document.input__1('text-container');
const paragraphs = container.input__2('p');
const newParagraph = document.createElement('p');
newParagraph.textContent = "Новый абзац в середине.";
container.input__3(newParagraph, paragraphs[input__4]);
Вставка элемента перед первым элементом другого родителя
Переместите первый элемент списка из списка с ID "list-from" и вставьте его перед первым элементом списка с ID "list-to".
<ul id="list-from">
<li class="item">Элемент 1 из списка 1</li>
<li class="item">Элемент 2 из списка 1</li>
</ul>
<ul id="list-to">
<li class="item">Элемент 1 из списка 2</li>
<li class="item">Элемент 2 из списка 2</li>
</ul>
const listFrom = document.input__1('list-from');
const firstItemFrom = listFrom.input__2('li');
const listTo = document.getElementById('list-to');
const firstItemTo = listTo.querySelector('li');
listTo.input__3(firstItemFrom, input__4);
Вставка элемента перед абзацем внутри div
Вставьте новый заголовок `<h2>` с текстом "Подзаголовок" перед абзацем с классом "paragraph-target" внутри контейнера с ID "inner-container".
<div id="main-container">
<div id="inner-container">
<p class="paragraph-target">Целевой абзац</p>
</div>
</div>
const targetParagraph = document.input__1('#inner-container .paragraph-target');
const newHeading = document.createElement('h2');
newHeading.textContent = "Подзаголовок";
const parent = targetParagraph.input__2;
parent.input__3(newHeading, targetParagraph);