
В этом тренажере вы попрактикуетесь добавлять HTML-элементы в определенные позиции внутри списка дочерних элементов существующего элемента. Вам будет предоставлен HTML-код, и ваша задача - дописать JavaScript-код, чтобы добиться желаемого результата. В каждом задании есть пропуски в коде (обозначенные как input__1, input__2 и т.д.), которые вам нужно заполнить. После заполнения пропусков вы сможете выполнить код и увидеть результат визуально. Задания расположены в порядке возрастания сложности. Это позволит вам закрепить знания о методах манипуляции DOM, таких как appendChild, insertBefore, insertAdjacentElement и других.
- Модуль 1: Основы выбора элементов
- Выбор элемента по ID.
- Выбор элементов по классу.
- Выбор элементов по тегу.
- Выбор по селектору CSS.
- Выбор по атрибуту.
- Поиск элементов внутри другого элемента.
- Поиск родительского элемента.
- Поиск соседних элементов (предыдущий, следующий).
- Поиск первого и последнего дочернего элемента.
- Поиск всех дочерних элементов.
- Модуль 2: Манипуляция содержимым
- Модуль 3: Работа с атрибутами
- Модуль 4: Управление классами
- Модуль 5: Управление стилями
- Модуль 6: Создание и удаление элементов
- Создание нового элемента.
- Вставка элемента перед другим элементом.
- Вставка элемента после другого элемента.
- Добавление элемента в определенную позицию внутри списка дочерних элементов.
- Удаление элемента из DOM.
- Замена одного элемента другим.
- Перемещение существующего элемента в другое место DOM..
- Очистка содержимого элемента без его удаления.
- Модуль 7: Обработка событий
- Модуль 8: Работа с формами
- Модуль 9: Продвинутые манипуляции
- Модуль 10: Работа с размерами и прокруткой
- Получение размеров элемента.
- Получение позиции элемента относительно окна браузера.
- Получение позиции элемента относительно родительского элемента.
- Управление прокруткой страницы.
- Определение, виден ли элемент в текущей области просмотра.
- Плавная прокрутка к элементу.
- Создание элемента, который фиксируется при прокрутке.
- Модуль 11: Работа с медиа-элементами
- Модуль 12: Практические задания
Добавление элемента в конец списка
Вам дан список `<ul>` с несколькими элементами `<li>`. Ваша задача - добавить новый элемент `<li>` с текстом "Новый элемент" в конец этого списка. Используйте JavaScript, чтобы создать новый элемент и добавить его в список.
<ul id="myList">
<li>Элемент 1</li>
<li>Элемент 2</li>
<li>Элемент 3</li>
</ul>
const newListElement = document.createElement(input__1);
newListElement.textContent = "Новый элемент";
const list = document.getElementById(input__2);
list.input__3(newListElement);
Добавление элемента в начало списка
Вам дан список `<ul>` с несколькими элементами `<li>`. Добавьте новый элемент `<li>` с текстом "Самый первый элемент" в начало списка. Используйте подходящий метод JavaScript для вставки элемента перед первым дочерним элементом.
<ul id="myList">
<li>Элемент 1</li>
<li>Элемент 2</li>
<li>Элемент 3</li>
</ul>
const newListElement = document.createElement("li");
newListElement.textContent = "Самый первый элемент";
const list = document.getElementById("myList");
list.insertBefore(input__1, list.input__2);
Вставка элемента перед определенным элементом
Дан список `<ul>` с несколькими элементами `<li>`. Добавьте новый элемент `<li>` с текстом "Новый элемент перед вторым" непосредственно перед вторым элементом списка (с текстом "Элемент 2").
<ul id="myList">
<li>Элемент 1</li>
<li>Элемент 2</li>
<li>Элемент 3</li>
</ul>
const newListElement = document.createElement("li");
newListElement.textContent = "Новый элемент перед вторым";
const list = document.getElementById("myList");
const secondElement = list.input__1[input__2];
list.insertBefore(newListElement, secondElement);
Вставка элемента после определенного элемента
Дан список `<ul>` с несколькими `<li>`. Добавьте новый `<li>` с текстом "Новый после второго" сразу после второго элемента (с текстом "Элемент 2").
<ul id="myList">
<li>Элемент 1</li>
<li>Элемент 2</li>
<li>Элемент 3</li>
</ul>
const newListElement = document.createElement("li");
newListElement.textContent = "Новый после второго";
const list = document.getElementById("myList");
const secondElement = list.children[1];
const input__1 = secondElement.nextSibling;
if (nextSibling) {
list.insertBefore(newListElement, nextSibling);
} else {
list.input__2(newListElement);
}
Добавление элемента с использованием insertAdjacentElement
Дан список `<ul>`. Добавьте новый элемент `<li>` с текстом "Новый элемент (adjacent)" после последнего элемента списка, используя метод `insertAdjacentElement`.
<ul id="myList">
<li>Элемент 1</li>
<li>Элемент 2</li>
<li>Элемент 3</li>
</ul>
const newListElement = document.createElement("li");
newListElement.textContent = "Новый элемент (adjacent)";
const list = document.getElementById("myList");
list.insertAdjacentElement(input__1, newListElement);
Добавление нескольких элементов
Дан пустой список `<ul>`. Добавьте в него три новых элемента `<li>` с текстами "Элемент A", "Элемент B" и "Элемент C" за одну операцию.
<ul id="myList"></ul>
const list = document.getElementById("myList");
const elementA = document.createElement("li");
elementA.textContent = "Элемент A";
const elementB = document.createElement("li");
elementB.textContent = "Элемент B";
const elementC = document.createElement("li");
elementC.textContent = "Элемент C";
list.append(input__1, input__2, input__3);
Добавление элемента с изображением
Дан список `<ul>`. Добавьте в конец списка новый элемент `<li>`, содержащий изображение.
<ul id="imageList">
<li>Элемент 1</li>
</ul>
const newListElement = document.createElement("li");
const image = document.createElement(input__1);
image.src = input__2;
newListElement.appendChild(image);
const list = document.getElementById("imageList");
list.appendChild(newListElement);
Добавление элемента с классом
Добавьте новый элемент `<div>` с классом "highlight" в конец элемента с id="container".
.highlight {
background-color: yellow;
}
<div id="container">
<p>Существующий контент</p>
</div>
const newDiv = document.createElement("div");
newDiv.classList.add(input__1);
const container = document.getElementById("container");
container.appendChild(newDiv);
Вставка элемента с текстом и атрибутом
Вставьте новый элемент `<p>` с текстом "Привет, мир!" и атрибутом `data-id="123"` перед элементом с id="tt".
<div id="container">
<span id="tt">Целевой элемент</span>
</div>
const newParagraph = document.createElement(input__1);
newParagraph.textContent = "Привет, мир!";
newParagraph.setAttribute(input__2, input__3);
const ttElement = document.getElementById("tt");
const parent = ttElement.parentNode
parent.insertBefore(newParagraph, ttElement);
Добавление элемента внутрь другого элемента
Дан элемент `<div id="outer">`. Добавьте внутрь него новый элемент `<span id="inner">`, а внутрь этого `<span>` добавьте текст "Вложенный текст".
<div id="outer"></div>
const innerSpan = document.createElement("span");
innerSpan.id = "inner";
innerSpan.textContent = "Вложенный текст";
const outerDiv = document.getElementById(input__1);
outerDiv.input__2(innerSpan);
Добавление элемента перед первым дочерним с использованием firstElementChild
Дан `div` с несколькими дочерними элементами. Добавьте новый элемент `<p>` с текстом "Новый первый абзац" перед первым дочерним элементом этого `div`.
<div id="container">
<span>Первый</span>
<p>Второй</p>
</div>
const newParagraph = document.createElement("p");
newParagraph.textContent = "Новый первый абзац";
const container = document.getElementById("container");
container.insertBefore(newParagraph, container.input__1);
Добавление элемента, используя insertAdjacentHTML
Дан `<div id="container">`. Добавьте `<p>Привет!</p>` *внутрь* `div`, *перед* всем остальным его содержимым, используя `insertAdjacentHTML`.
<div id="container"><span>Существующий текст</span></div>
const container = document.getElementById("container");
container.insertAdjacentHTML(input__1, input__2);
Добавление элемента после последнего дочернего с использованием lastElementChild
Дан `div` с несколькими дочерними элементами. Добавьте новый элемент `<p>` с текстом "Новый последний абзац" после последнего дочернего элемента.
<div id="container">
<span>Первый</span>
<p>Второй</p>
</div>
const newParagraph = document.createElement("p");
newParagraph.textContent = "Новый последний абзац";
const container = document.getElementById("container");
const lastChild = container.input__1;
container.insertAdjacentElement('afterend', newParagraph);
Комплексное задание: создание списка
Создайте с нуля список `<ul>` с тремя элементами `<li>`: "Первый", "Второй", "Третий". Добавьте этот список в элемент `<div>` с id="container".
<div id="container"></div>
const ul = document.createElement(input__1);
const li1 = document.createElement("li");
li1.textContent = "Первый";
const li2 = document.createElement("li");
li2.textContent = "Второй";
const li3 = document.createElement("li");
li3.textContent = "Третий";
ul.appendChild(li1);
ul.appendChild(li2);
ul.appendChild(li3);
const container = document.getElementById("container");
container.input__2(ul);