
В этом тренажере вы попрактикуетесь в динамическом создании и удалении элементов формы с помощью JavaScript. Вы будете работать с различными HTML-элементами, такими как `<input>`, `<textarea>`, `<select>`, `<button>`, и контейнерами (`<div>`). Вам предстоит добавлять новые поля, удалять существующие, а также изменять их атрибуты и содержимое, реагируя на действия пользователя (например, нажатие кнопки). Каждое задание представляет собой фрагмент HTML и JavaScript кода с пропусками, которые вам нужно заполнить, чтобы добиться желаемого результата.
- Модуль 1: Основы выбора элементов
- Выбор элемента по ID.
- Выбор элементов по классу.
- Выбор элементов по тегу.
- Выбор по селектору CSS.
- Выбор по атрибуту.
- Поиск элементов внутри другого элемента.
- Поиск родительского элемента.
- Поиск соседних элементов (предыдущий, следующий).
- Поиск первого и последнего дочернего элемента.
- Поиск всех дочерних элементов.
- Модуль 2: Манипуляция содержимым
- Модуль 3: Работа с атрибутами
- Модуль 4: Управление классами
- Модуль 5: Управление стилями
- Модуль 6: Создание и удаление элементов
- Создание нового элемента.
- Вставка элемента перед другим элементом.
- Вставка элемента после другого элемента.
- Добавление элемента в определенную позицию внутри списка дочерних элементов.
- Удаление элемента из DOM.
- Замена одного элемента другим.
- Перемещение существующего элемента в другое место DOM..
- Очистка содержимого элемента без его удаления.
- Модуль 7: Обработка событий
- Модуль 8: Работа с формами
- Модуль 9: Продвинутые манипуляции
- Модуль 10: Работа с размерами и прокруткой
- Получение размеров элемента.
- Получение позиции элемента относительно окна браузера.
- Получение позиции элемента относительно родительского элемента.
- Управление прокруткой страницы.
- Определение, виден ли элемент в текущей области просмотра.
- Плавная прокрутка к элементу.
- Создание элемента, который фиксируется при прокрутке.
- Модуль 11: Работа с медиа-элементами
- Модуль 12: Практические задания
Добавление текстового поля
Добавьте текстовое поле (`<input type="text">`) внутрь `<div>` с идентификатором "container" после нажатия на кнопку "Добавить". Поле должно появляться при каждом нажатии.
<button id="addButton">Добавить</button>
<div id="container"></div>
document.getElementById("addButton").addEventListener("click", function() {
let input = document.input__1("input");
input.input__2 = "text";
document.getElementById("container").input__3(input);
});
Удаление последнего поля
Добавьте несколько текстовых полей, используя кнопку "Добавить". Затем реализуйте удаление последнего добавленного поля при нажатии на кнопку "Удалить".
<button id="addButton">Добавить</button>
<button id="removeButton">Удалить</button>
<div id="container"></div>
document.getElementById("addButton").addEventListener("click", function() {
let input = document.createElement("input");
input.type = "text";
document.getElementById("container").appendChild(input);
});
document.getElementById("removeButton").addEventListener("click", function() {
let container = document.getElementById("container");
let lastInput = container.querySelector("input:input__1");
if (lastInput) {
lastInput.input__2();
}
});
Добавление поля с номером
Добавляйте текстовые поля с порядковым номером при каждом нажатии на кнопку "Добавить". Например: "Поле 1", "Поле 2", и т.д.
<button id="addButton">Добавить</button>
<div id="container"></div>
let count = 0;
document.getElementById("addButton").addEventListener("click", function() {
count++;
let label = document.createElement("label");
label.textContent = "Поле " + input__1 + ": ";
let input = document.createElement("input");
input.type = "text";
let br = document.createElement("br");
document.getElementById("container").appendChild(input__2);
document.getElementById("container").appendChild(input);
document.getElementById("container").appendChild(br);
});
Добавление выпадающего списка
Добавьте выпадающий список (`<select>`) с тремя опциями ("Вариант 1", "Вариант 2", "Вариант 3") внутрь `<div>` с id "container" при нажатии на кнопку.
<button id="addButton">Добавить select</button>
<div id="container"></div>
document.getElementById("addButton").addEventListener("click", function() {
let select = document.createElement(input__1);
let option1 = document.createElement("option");
option1.value = "1";
option1.textContent = "Вариант 1";
let option2 = document.createElement("option");
option2.input__2 = "2";
option2.textContent = "Вариант 2";
let option3 = document.createElement("option");
option3.value = "3";
option3.textContent = "Вариант 3";
select.appendChild(option1);
select.appendChild(option2);
select.appendChild(option3);
document.getElementById("container").appendChild(input__3);
});
Удаление определенного поля
Добавьте несколько текстовых полей с кнопками "Удалить" рядом с каждым полем. При нажатии на кнопку "Удалить", должно удаляться соответствующее поле.
.input-group { margin-bottom: 5px; }
<button id="addButton">Добавить поле с кнопкой удаления</button>
<div id="container"></div>
document.getElementById("addButton").addEventListener("click", function() {
let inputGroup = document.createElement("div");
inputGroup.className = "input-group";
let input = document.createElement("input");
input.type = "text";
let button = document.createElement("button");
button.textContent = "Удалить";
button.addEventListener("click", function() {
input__1.parentNode.remove();
});
inputGroup.appendChild(input);
inputGroup.appendChild(button);
document.getElementById("container").appendChild(inputGroup);
});
Добавление изображения
Добавьте изображение внутрь `<div>` с id "container" при нажатии на кнопку. Используйте одну из картинок, указанных в условии.
<button id="addImageButton">Добавить изображение</button>
<div id="container"></div>
document.getElementById("addImageButton").addEventListener("click", function() {
let img = document.createElement(input__1);
img.src = "https://naytikurs.ru/assets/uploads/2025/03/3d-modelirovanie-i-vizualizatsiya-test-dlya-spetsialistov-v-trehmernoj-grafike2-300x300.png";
document.getElementById("container").input__2(img);
});
Добавление и очистка поля textarea
Добавьте поле `<textarea>` внутрь `<div>` с id "container" при нажатии на кнопку "Добавить". Затем добавьте кнопку "Очистить", которая будет очищать содержимое `<textarea>`.
<button id="addButton">Добавить textarea</button>
<button id="clearButton">Очистить</button>
<div id="container"></div>
document.getElementById("addButton").addEventListener("click", function() {
let textarea = document.createElement(input__1);
document.getElementById("container").appendChild(textarea);
});
document.getElementById("clearButton").addEventListener("click", function() {
let textarea = document.querySelector("textarea");
textarea.input__2 = "";
});
Добавление клонированного поля
Создайте текстовое поле с начальным значением. При нажатии на кнопку "Клонировать", создайте копию этого поля и добавьте её в "container".
<input type="text" id="originalInput" value="Исходное поле">
<button id="cloneButton">Клонировать</button>
<div id="container"></div>
document.getElementById("cloneButton").addEventListener("click", function() {
let originalInput = document.getElementById("originalInput");
let clonedInput = originalInput.input__1(input__2);
document.getElementById("container").appendChild(clonedInput);
});
Добавление нескольких типов полей
Добавьте выпадающий список (`<select>`) с опциями, представляющими разные типы полей: "text", "number", "email", "password". При выборе типа поля и нажатии на кнопку "Добавить", должно добавляться поле соответствующего типа.
<select id="fieldType">
<option value="text">Text</option>
<option value="number">Number</option>
<option value="email">Email</option>
<option value="password">Password</option>
</select>
<button id="addButton">Добавить</button>
<div id="container"></div>
document.getElementById("addButton").addEventListener("click", function() {
let fieldType = document.getElementById("fieldType").input__1;
let input = document.createElement("input");
input.type = input__2;
document.getElementById("container").appendChild(input);
});