
В этом разделе вы найдете серию упражнений, направленных на отработку навыков изменения атрибута `href` у ссылок с использованием JavaScript. Каждое задание представляет собой практическую задачу, где вам предстоит дополнить JavaScript код, чтобы добиться желаемого результата. Задания расположены от простого к сложному, начиная с базовых операций и постепенно переходя к более комплексным сценариям. Внимательно читайте описание каждого задания и используйте подсказки, если возникнут затруднения.
- Модуль 1: Основы выбора элементов
- Выбор элемента по ID.
- Выбор элементов по классу.
- Выбор элементов по тегу.
- Выбор по селектору CSS.
- Выбор по атрибуту.
- Поиск элементов внутри другого элемента.
- Поиск родительского элемента.
- Поиск соседних элементов (предыдущий, следующий).
- Поиск первого и последнего дочернего элемента.
- Поиск всех дочерних элементов.
- Модуль 2: Манипуляция содержимым
- Модуль 3: Работа с атрибутами
- Модуль 4: Управление классами
- Модуль 5: Управление стилями
- Модуль 6: Создание и удаление элементов
- Создание нового элемента.
- Вставка элемента перед другим элементом.
- Вставка элемента после другого элемента.
- Добавление элемента в определенную позицию внутри списка дочерних элементов.
- Удаление элемента из DOM.
- Замена одного элемента другим.
- Перемещение существующего элемента в другое место DOM..
- Очистка содержимого элемента без его удаления.
- Модуль 7: Обработка событий
- Модуль 8: Работа с формами
- Модуль 9: Продвинутые манипуляции
- Модуль 10: Работа с размерами и прокруткой
- Получение размеров элемента.
- Получение позиции элемента относительно окна браузера.
- Получение позиции элемента относительно родительского элемента.
- Управление прокруткой страницы.
- Определение, виден ли элемент в текущей области просмотра.
- Плавная прокрутка к элементу.
- Создание элемента, который фиксируется при прокрутке.
- Модуль 11: Работа с медиа-элементами
- Модуль 12: Практические задания
Задание 1: Изменение `href` на абсолютный URL
Измените значение атрибута `href` у ссылки с идентификатором `myLink` на абсолютный URL "https://www.example.com".
<a href="/relative-path" id="myLink">Ссылка</a>
document.input__1("myLink").input__2 = "https://www.example.com";
Задание 2: Изменение `href` на относительный URL
Измените значение атрибута `href` у ссылки с идентификатором `myLink` на относительный URL "/new-page".
<a href="https://www.google.com" id="myLink">Ссылка</a>
document.input__1("myLink").input__2 = "/new-page";
Задание 3: Изменение `href` у нескольких ссылок
Измените атрибут `href` у всех ссылок с классом `nav-link` на "#top".
<a href="/page1" class="nav-link">Ссылка 1</a>
<a href="/page2" class="nav-link">Ссылка 2</a>
<a href="/page3" class="nav-link">Ссылка 3</a>
const links = document.input__1(".nav-link");
links.forEach(function(link) {
link.input__2 = "#top";
});
Задание 4: Изменение `href` в зависимости от текста ссылки
Для всех ссылок с классом `dynamic-link`, если текст ссылки содержит слово "Главная", измените `href` на "/"; если содержит "Контакты", измените на "/contacts".
<a href="#" class="dynamic-link">Главная страница</a>
<a href="#" class="dynamic-link">О нас</a>
<a href="#" class="dynamic-link">Контакты</a>
const links = document.input__1(".dynamic-link");
links.forEach(function(link) {
if (link.input__2.input__3("Главная")) {
link.input__4 = "/";
} else if (link.textContent.input__5("Контакты")) {
link.input__6 = "/contacts";
}
});
Задание 5: Изменение `href` при клике на кнопку
При клике на кнопку с id `changeButton`, измените `href` у ссылки с id `targetLink` на "https://yandex.ru".
<button id="changeButton">Изменить ссылку</button>
<a href="#" id="targetLink">Яндекс</a>
const button = document.input__1("changeButton");
const link = document.input__2("targetLink");
button.addEventListener("click", function() {
link.input__3 = "https://yandex.ru";
});
Задание 6: Получение и изменение `href` с использованием `getAttribute` и `setAttribute`
Получите текущий `href` атрибут ссылки с id `myLink` с помощью `getAttribute`, выведите его в консоль, а затем установите новый `href` на "/catalog" используя `setAttribute`.
<a href="/products" id="myLink">Товары</a>
const link = document.input__1("myLink");
const currentHref = link.input__2("href");
console.log(currentHref);
link.input__3("href", "/catalog");
Задание 7: Изменение `href` на основе данных из `data-` атрибута
Для ссылки с id `dataLink`, прочитайте значение `data-url` атрибута и установите его как `href` ссылки.
<a href="#" id="dataLink" data-url="/profile">Профиль</a>
const link = document.input__1("dataLink");
const dataUrl = link.dataset.input__2;
link.input__3 = dataUrl;
Задание 8: Изменение `href` с использованием стрелочной функции в обработчике событий
При клике на кнопку с id `arrowButton`, измените `href` у ссылки с id `targetLink` на "https://vk.com", используя стрелочную функцию в обработчике события.
<button id="arrowButton">Изменить ссылку</button>
<a href="#" id="targetLink">ВКонтакте</a>
const button = document.input__1("arrowButton");
const link = document.input__2("targetLink");
button.addEventListener("click", () => {
link.input__3 = "https://vk.com";
});
Задание 9: Изменение `href` на основе значения из `input` поля
Получите значение из поля ввода с id `urlInput` и установите его как `href` для ссылки с id `dynamicLink` при клике на кнопку `setUrlButton`.
<input type="text" id="urlInput" placeholder="Введите URL">
<button id="setUrlButton">Установить URL</button>
<a href="#" id="dynamicLink">Динамическая ссылка</a>
const inputField = document.input__1("urlInput");
const button = document.input__2("setUrlButton");
const link = document.input__3("dynamicLink");
button.addEventListener("click", function() {
const newUrl = inputField.input__4;
link.input__5 = newUrl;
});
Задание 10: Изменение `href` только для внешних ссылок
Для всех ссылок на странице, если `href` начинается с "http" (внешняя ссылка), измените его на "https://external-redirect.com?url=[исходный href]".
<a href="/local-page">Локальная страница</a>
<a href="http://example.com">Внешняя ссылка 1</a>
<a href="https://google.com">Внешняя ссылка 2</a>
const links = document.input__1('a');
const redirectUrl = "https://external-redirect.com?url=";
links.forEach(function(link) {
if (link.input__2.input__3("http")) {
const originalHref = link.input__4;
link.input__5 = redirectUrl + originalHref;
}
});