|
6 | 6 |
|
7 | 7 | ## Класи DOM вузлів |
8 | 8 |
|
9 | | -Різні вузли DOM можуть мати різні властивості. Наприклад, елемент, що відповідає тегу `<a>`, має властивості, пов’язані з посиланням, тоді як елемент, що відповідає `<input>`, має властивості, пов’язані з введення даних, тощо. Текстові вузли відрізняються від вузлів елементів. Проте, між ними також існують загальні властивості та методи, оскільки всі класи вузлів DOM утворюють єдину ієрархію. |
| 9 | +Різні вузли DOM можуть мати різні властивості. Наприклад, елемент, що відповідає тегу `<a>`, має властивості, пов’язані з посиланням, тоді як елемент, що відповідає `<input>`, має властивості, пов’язані з введенням даних, тощо. Текстові вузли відрізняються від вузлів елементів. Проте, між ними також існують загальні властивості та методи, оскільки всі класи вузлів DOM утворюють єдину ієрархію. |
10 | 10 |
|
11 | | -Кожен вузол DOM належить відповідному вбудованого класу. |
| 11 | +Кожен вузол DOM належить відповідному вбудованому класу. |
12 | 12 |
|
13 | 13 | Коренем ієрархії є [EventTarget](https://dom.spec.whatwg.org/#eventtarget), від нього успадковується [Node](https://dom.spec.whatwg.org/#interface-node), а інші вузли DOM успадкують вже від нього. |
14 | 14 |
|
|
26 | 26 |
|
27 | 27 | Він надає основні функціональні можливості дерева: `parentNode`, `nextSibling`, `childNodes` та інші (це геттери). Об'єкти класу `Node` ніколи не створюються, але існують інші класи, які успадковують його (і таким чином успадковують функціональність `Node`). |
28 | 28 |
|
29 | | -- [Document](https://dom.spec.whatwg.org/#interface-document), з історичних причин часто успадковується `HTMLDocument` (хоча останні специфікації цього не вимагають), представляє собою документ в цілому. |
| 29 | +- [Document](https://dom.spec.whatwg.org/#interface-document), з історичних причин його часто успадковує `HTMLDocument` (хоча останні специфікації цього не вимагають), представляє собою документ в цілому. |
30 | 30 |
|
31 | 31 | Глобальний об'єкт `document` належить саме до цього класу. Він служить точкою входу в DOM. |
32 | 32 |
|
|
50 | 50 | - [HTMLAnchorElement](https://html.spec.whatwg.org/multipage/semantics.html#htmlanchorelement) - клас для елементів `<a>`, |
51 | 51 | - ...тощо. |
52 | 52 |
|
53 | | -Існує інших тегів з власними класами, які можуть мати певні властивості та методи, тоді як деякі елементи, такі як `<span>`, `<section>`, `<article>` не мають специфічних властивостей і, тому, вони є екземплярами класу `HTMLElement`. |
| 53 | +Існує багато інших тегів з власними класами, які можуть мати певні властивості та методи, тоді як деякі елементи, такі як `<span>`, `<section>`, `<article>` не мають специфічних властивостей і, тому, вони є екземплярами класу `HTMLElement`. |
54 | 54 |
|
55 | 55 | Таким чином, повний набір властивостей та методів для певного вузла формується в результаті ланцюга успадкування. |
56 | 56 |
|
|
59 | 59 | Він отримує властивості та методи шляхом "накладання" наступних класів (подані в порядку успадкування): |
60 | 60 |
|
61 | 61 | - `HTMLInputElement` -- цей клас надає специфічні властивості для елемента введення, |
62 | | -- `HTMLElement` -- він надає загальні методи для HTML-елементів (такі як отримання та встановлення значень), |
63 | | -- `Element` -- він надає загальні методи для елементів, |
64 | | -- `Node` -- він має загальні властивості для вузлів DOM (наприклад, батьківський вузол та наступний вузол), |
| 62 | +- `HTMLElement` -- надає загальні методи для HTML-елементів (такі як отримання та встановлення значень), |
| 63 | +- `Element` -- надає загальні методи для елементів, |
| 64 | +- `Node` -- надає загальні властивості для вузлів DOM, |
65 | 65 | - `EventTarget` -- цей клас забезпечує підтримку подій (ми розглянемо це пізніше), |
66 | 66 | - ... і, нарешті, цей клас успадковується від `Object`, тому він має доступ до загальних методів "простого об'єкту", наприклад, `hasOwnProperty`. |
67 | 67 |
|
@@ -162,7 +162,7 @@ interface HTMLInputElement: HTMLElement { |
162 | 162 | // і перший дочірній елемент ... |
163 | 163 | alert(elem.firstChild.nodeType); // 3 => text |
164 | 164 |
|
165 | | - // для об’єкта документа тип -- 9 |
| 165 | + // для об’єкта document тип дорівнює 9 |
166 | 166 | alert( document.nodeType ); // 9 |
167 | 167 | </script> |
168 | 168 | </body> |
@@ -344,7 +344,7 @@ elem.innerHTML = elem.innerHTML + "..." |
344 | 344 | - Інший шматок HTML `<p>Новий елемент</p>` був вставлений на його місце. |
345 | 345 | - Змінна `div` ще має своє старе значення. Новий HTML не був збережений в жодну змінну. |
346 | 346 |
|
347 | | -Так дуже легко допустити помилку: змінити `div.outerHTML`, а потім продовжувати працювати з `div`, як і раніше. Але воно не змінилося. Таке правило діє для `innerHTML`, але не для `outerHTML`. |
| 347 | +Так дуже легко допустити помилку: змінити `div.outerHTML`, а потім продовжувати працювати з `div` вважаючи, що його вміст змінився. Однак, цього не сталось. Таке припущення було б правильним для `innerHTML`, але не для `outerHTML`. |
348 | 348 |
|
349 | 349 | Ми можемо записувати у `elem.outerHTML`, але маємо пам'ятати, що це не змінює елемент, до якого ми записуємо ('elem'). Замість цього воно замінює його в DOM. Ми можемо отримати посилання на нові елементи, запитуючи DOM. |
350 | 350 |
|
@@ -486,7 +486,7 @@ elem.innerHTML = elem.innerHTML + "..." |
486 | 486 | </script> |
487 | 487 | ``` |
488 | 488 |
|
489 | | -Найбільш стандартні атрибути HTML мають відповідну DOM-властивість, і ми можемо отримати доступ до нєї. |
| 489 | +Найбільш стандартні атрибути HTML мають відповідну DOM-властивість, і ми можемо отримати доступ до неї. |
490 | 490 |
|
491 | 491 | Якщо ми хочемо знати повний список підтримуваних властивостей для заданого класу, ми можемо знайти їх у специфікації. Наприклад, `HTMLInputElement` задокументовано на <https://html.spec.whatwg.org/#htmlinpelement>. |
492 | 492 |
|
@@ -514,7 +514,7 @@ elem.innerHTML = elem.innerHTML + "..." |
514 | 514 | : Вміст не-елементного вузла (тексту, коментаря). Ці дві властивості майже однакові, зазвичай ми використовуємо `data`. Можна змінювати. |
515 | 515 |
|
516 | 516 | `textContent` |
517 | | -: Текст всередині елемента: HTML мінус усі `<теги>`. Записуючи в нього, ми отримуємо текст всередині елемента, з усіма спеціальними символами та тегами, трактованими як текст. Це безпечний спосіб вставляти користувацький текст та захист від небажаних вставок HTML. |
| 517 | +: Текст всередині елемента: HTML мінус усі `<теги>`. Записуючи в нього, ми отримуємо текст всередині елемента, з усіма спеціальними символами та тегами, трактованими як текст. Дозволяє безпечно вставляти користувацький текст, захищаючи від небажаних вставок HTML. |
518 | 518 |
|
519 | 519 | `hidden` |
520 | 520 | : Коли встановлено `true`, робитьте ж саме, що й CSS `display:none`. |
|
0 commit comments