JS властивість Element.innerHTML
Загальний опис
innerHTML - це властивість об'єкту Element в JavaScript, яка надає доступ до HTML-вмісту елементу та дозволяє його змінювати. Вона використовується для динамічного оновлення вмісту веб-сторінки без необхідності повного перезавантаження сторінки. Ця властивість є корисною при роботі з динамічним вмістом, створенні інтерактивних веб-додатків та при маніпуляціях з DOM.
Найпростіший спосіб використання innerHTML - просто присвоїти їй рядок з HTML-кодом. Наприклад:
const element = document.getElementById('myElement');
element.innerHTML = '<p>Новий вміст елементу</p>';
Цей код замінить весь існуючий HTML-вміст елементу з ідентифікатором 'myElement' на новий вміст - абзац тексту.
Властивість innerHTML також дозволяє вставляти HTML-код, що динамічно генерується на основі даних з JavaScript. Наприклад:
const items = ['Яблуко', 'Банан', 'Апельсин'];
const list = document.getElementById('myList');
let htmlContent = '<ul>';
for (const item of items) {
htmlContent += `<li>${item}</li>`;
}
htmlContent += '</ul>';
list.innerHTML = htmlContent;
Тут ми створюємо невпорядкований HTML-список з елементів масиву items і вставляємо його в елемент 'myList'.
Важливо пам'ятати, що при присвоєнні innerHTML весь існуючий вміст елементу буде замінено новим значенням. Якщо потрібно лише додати новий вміст, а не замінювати існуючий, можна використовувати властивість innerHTML в поєднанні з оператором +=:
const element = document.getElementById('myElement');
element.innerHTML += '<p>Додатковий вміст</p>';
Цей код додасть новий абзац тексту в кінець існуючого HTML-вмісту елементу.
При використанні innerHTML слід бути обережним з введенням користувачем, оскільки вставлений HTML-код буде інтерпретовано браузером. Це може призвести до ризиків безпеки, таких як Cross-Site Scripting (XSS) атаки. Для безпечного введення користувачем рекомендується використовувати функцію textContent замість innerHTML або належним чином обробляти вхідні дані перед вставкою в DOM.
Загалом, властивість innerHTML є потужним інструментом для динамічної зміни вмісту веб-сторінки в JavaScript. Вона дозволяє легко маніпулювати HTML-кодом, оновлювати вміст елементів та створювати інтерактивні веб-додатки.
| Порада: | Треба бути обережним при використанні |
| Порада: | Якщо потрібно лише додати новий вміст, а не замінювати існуючий, використовуй оператор |
| Порада: | Для досвідчених розробників: при роботі з великими об'ємами даних або частими оновленнями вмісту, використання |
Синтаксис
Element.innerHTML
Значення
Return
Переглядачі
| Переглядач | |||||
|---|---|---|---|---|---|
1 |
1 |
1 |
8 |
12 |
| Переглядач | ||||
|---|---|---|---|---|
1 |
18 |
4 |
1 |
| Переглядач | ||
|---|---|---|
- |
- |
Приклади
У цьому прикладі ми використовуємо властивість innerHTML для динамічного оновлення списку покупок на веб-сторінці. Користувач може вводити нові елементи в текстове поле, і після натискання кнопки "Додати" або клавіші Enter, новий елемент буде додано до списку. Властивість innerHTML використовується для вставки нового HTML-вмісту в елемент <ul>, що представляє список покупок.
Важливо зазначити, що при використанні innerHTML з даними, введеними користувачем, необхідно належним чином очищати ці дані, щоб запобігти потенційним атакам ін'єкцій. У цьому прикладі ми використовуємо метод trim() для видалення зайвих пробілів, але для біль
У цьому прикладі ми використовуємо властивість innerHTML для зміни вмісту HTML-елемента. Це простий спосіб динамічно змінювати вміст веб-сторінки за допомогою JavaScript.
// Отримуємо посилання на елемент за його ідентифікатором
const myElement = document.getElementById('myElement');
// Змінюємо вміст елемента
myElement.innerHTML = 'Новий текст';
У цьому прикладі ми використовуємо властивість innerHTML для створення складного HTML-вмісту з динамічними даними. Це дозволяє ефективно генерувати розмітку на стороні клієнта.
// Масив об'єктів з даними
const data = [
{ name: 'Іван', age: 25 },
{ name: 'Марія', age: 30 },
{ name: 'Петро', age: 35 }
];
// Отримуємо посилання на контейнер
const container = document.getElementById('container');
// Генеруємо HTML-розмітку
let html = '';
for (const person of data) {
html += `<div>
<h3>${person.name}</h3>
<p>Вік: ${person.age}</p>
</div>`;
}
// Вставляємо розмітку в контейнер
container.innerHTML = html;
