Чтение онлайн

на главную - закладки

Жанры

JavaScript. Подробное руководство, 6-е издание
Шрифт:

Обратите внимание, что узлы

Text
и
Comment
не имеют дочерних узлов. Это означает, что описанное выше свойство
Node.parentNode
никогда не возвращает узлы типа
Text
или
Comment
. Значением свойства
parentNode
любого объекта
Element
всегда будет другой объект
Element
или корень дерева - объект
Document
или
DocumentFragment
.

Второй частью прикладного интерфейса навигации по элементам документа являются свойства объекта

Element
, аналогичные свойствам доступа к дочерним и братским узлам объекта
Node
:

firstElementChild, lastElementChild

Похожи на свойства

firstChild
и
lastChild
, но возвращают дочерние элементы.

nextElementSibling, previousElementSibling

Похожи на свойства

nextSibling
и
previousSibling
, но возвращают братские элементы.

childElementCount

Количество дочерних элементов. Возвращает то же значение, что и свойство

children.length
.

Эти свойства доступа к дочерним и братским элементам стандартизованы и реализованы во всех текущих броузерах, кроме IE. [37]

37

http://www.w3.org/TR/ElementTraversal.

Поскольку прикладной интерфейс навигации по элементам документа реализован не во всех броузерах, вам может потребоваться определить переносимые функции навигации, как в примере 15.2.

Пример 15.2. Переносимые функции навигации по документу

/**

* Возвращает ссылку на n-го предка элемента е или null, если нет такого предка

* или если этот предок не является элементом Element

* (например, Document или DocumentFragment).

* Если в аргументе n передать 0, функция вернет сам элемент е.

* Если в аргументе n передать 1 (или вообще опустить этот аргумент),

* функция вернет родительский элемент.

* Если в аргументе n передать 2, функция вернет родителя родительского элемента и т. д. */

function parent(e, n) {

if (n === undefined) n = 1;

while(n-- && e) e = e.parentNode;

if (!e || e.nodeType !== 1) return null;

return e;

}

/**

*
Возвращает n-й братский элемент элемента е.

* Если в аргументе п передать положительное число, функция вернет следующий

* n-й братский элемент.

* Если в аргументе п передать отрицательное число, функция вернет предыдущий

* n-й братский элемент.

* Если в аргументе п передать ноль, функция вернет сам элемент е.

*/

function sibling(e.n) {

while(e && n !== 0) { // Если e не определен, просто вернуть его

if (n > 0) { // Отыскать следующий братский элемент

if (е.nextElementSibling) е = е.nextElementSibling;

else {

for(e=e.nextSibling; e && e.nodeType !== 1; e=e.nextSibling)

/* пустой цикл */ ;

}

n--;

}

else { // Отыскать предыдущий братский элемент

if (e.previousElementSibing) e = e.previousElementSibling;

else {

for(e=e.previousSibling;e&&e.nodeType!==1;e=e.previousSibling)

/* пустой цикл */ ;

}

n++;

}

}

return e;

}

/**

* Возвращает n-й дочерний элемент элемента е или null, если нет такого

Поделиться:
Популярные книги

Инженер Петра Великого 4

Гросов Виктор
4. Инженер Петра Великого
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Инженер Петра Великого 4

Леди Малиновой пустоши

Шах Ольга
Любовные романы:
любовно-фантастические романы
6.20
рейтинг книги
Леди Малиновой пустоши

Точка Бифуркации IV

Смит Дейлор
4. ТБ
Фантастика:
героическая фантастика
городское фэнтези
попаданцы
5.00
рейтинг книги
Точка Бифуркации IV

Жрец Хаоса. Книга ХVII

Борзых М.
17. Зов пустоты
Фантастика:
аниме
фэнтези
эпическая фантастика
попаданцы
5.00
рейтинг книги
Жрец Хаоса. Книга ХVII

Локки 2. Потомок бога

Решетов Евгений Валерьевич
2. Локки
Фантастика:
городское фэнтези
аниме
попаданцы
5.00
рейтинг книги
Локки 2. Потомок бога

Энергия жизни. От искры до фотосинтеза

Азимов Айзек
Популярная наука от Азимова
Научно-образовательная:
химия
физика
биохимия
6.25
рейтинг книги
Энергия жизни. От искры до фотосинтеза

Реформаторы во главе Державы

Андреев Александр Радьевич
Документальная литература:
биографии и мемуары
5.00
рейтинг книги
Реформаторы во главе Державы

Джей

Kriu
Фантастика:
фэнтези
5.00
рейтинг книги
Джей

Имперец. Том 3

Романов Михаил Яковлевич
2. Имперец
Фантастика:
боевая фантастика
попаданцы
альтернативная история
7.50
рейтинг книги
Имперец. Том 3

В поисках христианской свободы

Френц Реймонд
Религия и эзотерика:
прочая религиозная литература
5.00
рейтинг книги
В поисках христианской свободы

Завещание предков

Стрелков Владислав Валентинович
Приключения:
исторические приключения
6.14
рейтинг книги
Завещание предков

Год 1942 — «учебный»

Бешанов Владимир Васильевич
Документальная литература:
биографии и мемуары
6.20
рейтинг книги
Год 1942 — «учебный»

Кодекс Охотника. Книга XIV

Винокуров Юрий
14. Кодекс Охотника
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XIV

КУТУЗОВ

Раковский Леонтий Иосифович
5.00
рейтинг книги
КУТУЗОВ