
<!DOCTYPE html>
<html lang="uk">
<head>
<meta charset="UTF-8">
<title>DOM (Об'єктна модель документа)</title>
</head>
<body>
<script src='./dom.js'><script>
</body>
<html>
document.createElement()document.createElement(tagName[, options])
Створює новий елемент типу, який вказаний у параметрі tagName.
[options] - необов'язкові параметри функції. Наразі можете не звертати на них уваги.
Ця функція НЕ додає ваш новий елемент до DOM - вона лише створює його в пам'яті. Це зроблено для того, щоб ви могли змінювати елемент (додавати стилі, класи, ідентифікатори, текст тощо) перед тим, як розмістити його на сторінці.
Ви можете додати елемент до DOM одним із таких способів:
parentElement.appendChild(newElement) - додає елемент в кінець батьківського елементаparentElement.insertBefore(newElement, referenceElement) - вставляє елемент перед вказаним елементомelement.replaceWith(newElement) - замінює існуючий елемент новим
const newDiv = document.createElement("div");
newDiv.textContent = "Привіт, світ!";
newDiv.classList.add("box");
document.body.appendChild(newDiv);
Стилі в JavaScript аналогічні стилям у CSS, але назви властивостей, які записані через дефіс, змінюються на camelCase.
Наприклад:
div.style.color = 'blue';
Додає вказаний стиль до елемента.
div.style.cssText = 'color: blue; background: white';
Дозволяє встановити декілька стилів одночасно.
div.setAttribute('style', 'color: blue; background: white');
Альтернативний спосіб додавання декількох стилів.
const element = document.createElement('div');
element.textContent = 'Приклад тексту';
element.style.backgroundColor = 'lightblue';
element.style.padding = '10px';
element.style.borderRadius = '5px';
document.body.appendChild(element);
Примітка: Inline-стилі мають найвищий пріоритет і перевизначають стилі з CSS-файлів.
div.textContent = 'Привіт, світ!';
Створює текстовий вузол, що містить "Привіт, світ!" та вставляє його в елемент div.
Переваги: Безпечний метод, автоматично екранує HTML-теги.
div.innerHTML = '<span>Привіт, світ!</span>';
Вставляє HTML-код всередину елемента div.
Використання: Коли потрібно додати саме HTML-розмітку, а не просто текст.
textContent є кращим вибором для роботи зі звичайним текстом.
innerHTML слід використовувати обережно, оскільки при неправильному використанні він може створити загрозу безпеці (XSS-атаки).
textContentinnerHTML використовуйте лише тоді, коли дійсно потрібно вставити HTML-розміткуinnerHTML з користувацькими даними без попередньої очистки
// Безпечне додавання тексту
const greeting = document.createElement('div');
greeting.textContent = 'Ласкаво просимо на наш сайт!';
document.body.appendChild(greeting);
// Додавання HTML (з обережністю)
const htmlContent = document.createElement('div');
htmlContent.innerHTML = '<p>Це <strong>форматований</strong> текст</p>';
document.body.appendChild(htmlContent);
Пишемо скрипт.
<script>
// 1. Створюємо DIV елемент
const div = document.createElement('div');
// 2. Додаємо клас wrapper
div.classList.add('wrapper');
// 3. Додаємо його до body
document.body.appendChild(div);
// 4. Створюємо заголовок H1
const header = document.createElement('h1');
header.textContent = 'DOM (Об\'єктна модель документа)';
// 5. Додаємо H1 перед DIV з класом wrapper
div.insertAdjacentElement('beforebegin', header);
// 6. Створюємо список UL з трьома елементами
const ul = `
<ul>
<li>Один</li>
<li>Два</li>
<li>Три</li>
</ul>
`;
// 7. Додаємо список всередину wrapper
div.innerHTML = ul;
// 8. Створюємо зображення
const img = document.createElement("img");
img.src = "Kisa.gif"
img.width = 240;
img.classList.add("super");
img.alt = "Супер Кіт"
div.appendChild(img);
// 9. Створюємо DIV з двома параграфами (використовуючи HTML рядок)
const elemHTML = `
<div class="pDiv">
<p>Параграф 1 </p>
<p>Параграф 2 </p>
</div>
`;
// 10. Додаємо цей DIV перед списком
const ulList = div.querySelector('ul');
ulList.insertAdjacentHTML("beforebegin", elemHTML);
// 11. Додаємо клас text до другого параграфа
const pDiv = document.querySelector(".pDiv");
pDiv.children[1].classList.add("text");
// 12. Видаляємо перший параграф
pDiv.firstElementChild.remove();
</script>
Функція має повертати розмітку HTML:
<div class="autoCard">
<h2>BRAND YEAR</h2>
<p>Автомобіль BRAND - YEAR року. Вік авто - YEARS років.
</div>
const carsList=
{brand: 'Tesla', year: 2015, color: 'Червоний'},
{brand: 'Lexus', year: 2016, color: 'Сріблястий'},
{brand: 'Nissan', year: 2012, color: 'Чорний'},




