Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions 2-ui/1-document/03-dom-navigation/article.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ DOM позволяет нам делать что угодно с элемент

В частности, если скрипт находится в `<head>`, `document.body` в нём недоступен, потому что браузер его ещё не прочитал.

Поэтому, в примере ниже первый `alert` выведет `null`:
Поэтому в примере ниже первый `alert` выведет `null`:

```html run
<html>
Expand Down Expand Up @@ -86,7 +86,7 @@ DOM позволяет нам делать что угодно с элемент
</html>
```

...А потомки `<body>`-- это и прямые дети `<div>`, `<ul>` и вложенные в них: `<li>` (ребёнок `<ul>`) и `<b>` (ребёнок `<li>`) - в общем, все элементы поддерева.
...А потомки `<body>`-- это и прямые дети `<div>`, `<ul>`, и вложенные в них: `<li>` (ребёнок `<ul>`) и `<b>` (ребёнок `<li>`) - в общем, все элементы поддерева.

**Коллекция `childNodes` содержит список всех детей, включая текстовые узлы.**

Expand Down Expand Up @@ -115,7 +115,7 @@ DOM позволяет нам делать что угодно с элемент
</html>
```

Обратим внимание на маленькую деталь. Если запустить пример выше, то последним будет выведен элемент `<script>`. На самом деле, в документе есть ещё "какой-то HTML-код", но на момент выполнения скрипта браузер ещё до него не дошёл, поэтому скрипт не видит его.
Обратим внимание на маленькую деталь. Если запустить пример выше, то последним будет выведен элемент `<script>`. На самом деле в документе есть ещё "какой-то HTML-код", но на момент выполнения скрипта браузер ещё до него не дошёл, поэтому скрипт не видит его.

**Свойства `firstChild` и `lastChild` обеспечивают быстрый доступ к первому и последнему дочернему элементу.**

Expand Down Expand Up @@ -163,7 +163,7 @@ DOM-коллекции, и даже более -- *все* навигацион
```warn header="DOM-коллекции живые"
Почти все DOM-коллекции, за небольшим исключением, *живые*. Другими словами, они отражают текущее состояние DOM.

Если мы сохраним ссылку на `elem.childNodes` и добавим/удалим узлы в DOM, то они появятся в сохранённой коллекции автоматически.
Если мы сохраним ссылку на `elem.childNodes` и добавим/удалим узлы в DOM, то они автоматически появятся в сохранённой коллекции -- или удалятся из неё.
```

````warn header="Не используйте цикл `for..in` для перебора коллекций"
Expand Down Expand Up @@ -214,7 +214,7 @@ alert( document.body.previousSibling ); // HTMLHeadElement

## Навигация только по элементам

Навигационные свойства, описанные выше, относятся ко *всем* узлам в документе. В частности, в `childNodes` находятся и текстовые узлы и узлы-элементы и узлы-комментарии, если они есть.
Навигационные свойства, описанные выше, относятся ко *всем* узлам в документе. В частности, в `childNodes` находятся и текстовые узлы, и узлы-элементы, и узлы-комментарии, если они есть.

Но для большинства задач текстовые узлы и узлы-комментарии нам не нужны. Мы хотим манипулировать узлами-элементами, которые представляют собой теги и формируют структуру страницы.

Expand All @@ -225,7 +225,7 @@ alert( document.body.previousSibling ); // HTMLHeadElement
Эти ссылки похожи на те, что раньше, только в ряде мест стоит слово `Element`:

- `children` -- коллекция детей, которые являются элементами.
- `firstElementChild`, `lastElementChild` -- первый и последний дочерний элемент.
- `firstElementChild`, `lastElementChild` -- первый и последний дочерние элементы.
- `previousElementSibling`, `nextElementSibling` -- соседи-элементы.
- `parentElement` -- родитель-элемент.

Expand Down Expand Up @@ -322,7 +322,7 @@ while(elem = elem.parentElement) { // идти наверх до <html>

## Итого

Получив DOM-узел, мы можем перейти к его ближайшим соседям используя навигационные ссылки.
Получив DOM-узел, мы можем перейти к его ближайшим соседям, используя навигационные ссылки.

Есть два основных набора ссылок:

Expand Down