TreeWalker
Базовая Широко доступна
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с июля 2015 года.
Объект TreeWalker представляет узлы поддерева документа и позицию внутри них.
Экземпляр TreeWalker можно создать, используя метод Document.createTreeWalker().
Свойства экземпляра
Этот интерфейс не наследует никаких свойств.
-
TreeWalker.rootТолько для чтения -
Возвращает корневой
Node, как указано при созданииTreeWalker. -
TreeWalker.whatToShowТолько для чтения -
Возвращает
unsigned long, представляющий собой битовую маску, составленную из констант, описывающих типыNode, которые должны быть представлены. Узлы, не соответствующие условиям, пропускаются, но их потомки могут быть включены, если это уместно. Возможные значения:Константа Числовое значение Описание NodeFilter.SHOW_ALL4294967295(т.е. максимальное значениеunsigned long)Отображает все узлы. NodeFilter.SHOW_ATTRIBUTEУстаревшее2Отображает узлы атрибутов Attr. Это имеет смысл только при созданииTreeWalkerс узломAttrв качестве корня. В этом случае это означает, что узел атрибута будет появляться в первой позиции итерации или обхода. Поскольку атрибуты никогда не являются потомками других узлов, они не отображаются при обходе древовидной структуры документа.NodeFilter.SHOW_CDATA_SECTIONУстаревшее8Отображает узлы CDATASection.NodeFilter.SHOW_COMMENT128Отображает узлы комментариев Comment.NodeFilter.SHOW_DOCUMENT256Отображает узлы документов Document.NodeFilter.SHOW_DOCUMENT_FRAGMENT1024Отображает узлы фрагментов документов DocumentFragment.NodeFilter.SHOW_DOCUMENT_TYPE512Отображает узлы типов документов DocumentType.NodeFilter.SHOW_ELEMENT1Отображает узлы элементов Element.NodeFilter.SHOW_ENTITYУстаревшее32Устаревшее, больше не используется. NodeFilter.SHOW_ENTITY_REFERENCEУстаревшее16Устаревшее, больше не используется. NodeFilter.SHOW_NOTATIONУстаревшее2048Устаревшее, больше не используется. NodeFilter.SHOW_PROCESSING_INSTRUCTION64Отображает узлы инструкций обработки ProcessingInstruction.NodeFilter.SHOW_TEXT4Отображает узлы текста Text. -
TreeWalker.filterТолько для чтения -
Возвращает
NodeFilter, связанное с этимTreeWalker, используемое для выбора соответствующих узлов. TreeWalker.currentNode-
Узел
Node, на который в данный момент указываетTreeWalker.
Методы экземпляра
Этот интерфейс не наследует никаких методов.
Примечание: В контексте TreeWalker, узел является видимым, если он существует в логическом представлении, определяемом параметрами whatToShow и filter. (Не имеет значения, отображается ли узел на экране.)
TreeWalker.parentNode()-
Перемещает текущий
Nodeк первому видимому предку в порядке документа и возвращает найденный узел. Также перемещает текущий узел в этот. Если такого узла не существует или он предшествует узлу корня, определенному при создании объекта, возвращаетnullи текущий узел не изменяется. TreeWalker.firstChild()-
Перемещает текущий
Nodeк первому видимому потомку текущего узла и возвращает найденного потомка. Также перемещает текущий узел в этого потомка. Если такого потомка не существует, возвращаетnullи текущий узел не изменяется. Обратите внимание, что узел, возвращаемыйfirstChild(), зависит от значенияwhatToShow, установленного при создании объектаTreeWalker. Предположим следующую структуру HTML и если вы установитеwhatToShowнаNodeFilter.SHOW_ALL, вызовfirstChild()вернет узелText, а не объектHTMLDivElement.<!doctype html> <html lang="en"> <head><title>Demo</title> <body> <div id="container"></div> </body> </html>let walker = document.createTreeWalker(document.body, NodeFilter.SHOW_ALL); let node = walker.firstChild(); // nodeName: "#text"
Но если мы сделаем:
let walker = document.createTreeWalker( document.body, NodeFilter.SHOW_ELEMENT, ); let node = walker.firstChild(); // nodeName: "DIV"
То же самое относится к
nextSibling(),previousSibling(),firstChild()иlastChild() TreeWalker.lastChild()-
Перемещает текущий
Nodeк последнему видимому потомку текущего узла и возвращает найденного потомка. Также перемещает текущий узел в этого потомка. Если такого потомка не существует, возвращаетсяnullи текущий узел не изменяется. TreeWalker.previousSibling()-
Перемещает текущий
Nodeк предыдущему брату, если таковой есть, и возвращает найденного брата. Если такого узла нет, возвращаетсяnullи текущий узел не изменяется. TreeWalker.nextSibling()-
Перемещает текущий
Nodeк следующему брату, если таковой есть, и возвращает найденного брата. Если такого узла нет, возвращаетсяnullи текущий узел не изменяется. TreeWalker.previousNode()-
Перемещает текущий
Nodeк предыдущему видимому узлу в порядке документа и возвращает найденный узел. Также перемещает текущий узел в этот. Если такого узла не существует или он предшествует узлу корня, определенному при создании объекта, возвращаетnullи текущий узел не изменяется. TreeWalker.nextNode()-
Перемещает текущий
Nodeк следующему видимому узлу в порядке документа и возвращает найденный узел. Также перемещает текущий узел в этот. Если такого узла не существует, возвращаетnullи текущий узел не изменяется.
Спецификации
| Спецификация |
|---|
| DOM # interface-treewalker |
Совместимость браузеров
| Рабочий стол | Мобильный | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
TreeWalker |
1 | 12 | 4 | 9 | 3 | 18 | 4 | 10.1 | 3 | 1.0 | 3 |
currentNode |
1 | 12 | 4 | 9 | 3 | 18 | 4 | 10.1 | 3 | 1.0 | 3 |
filter |
1 | 12 | 4 | 9 | 3 | 18 | 4 | 10.1 | 3 | 1.0 | 3 |
firstChild |
1 | 12 | 4 | 9 | 3 | 18 | 4 | 10.1 | 3 | 1.0 | 3 |
lastChild |
1 | 12 | 4 | 9 | 3 | 18 | 4 | 10.1 | 3 | 1.0 | 3 |
nextNode |
1 | 12 | 4 | 9 | 3 | 18 | 4 | 10.1 | 3 | 1.0 | 3 |
nextSibling |
1 | 12 | 4 | 9 | 3 | 18 | 4 | 10.1 | 3 | 1.0 | 3 |
parentNode |
1 | 12 | 4 | 9 | 3 | 18 | 4 | 10.1 | 3 | 1.0 | 3 |
previousNode |
1 | 12 | 4 | 9 | 3 | 18 | 4 | 10.1 | 3 | 1.0 | 3 |
previousSibling |
1 | 12 | 4 | 9 | 3 | 18 | 4 | 10.1 | 3 | 1.0 | 3 |
root |
1 | 12 | 4 | 9 | 3 | 18 | 4 | 10.1 | 3 | 1.0 | 3 |
whatToShow |
1 | 12 | 4 | 9 | 3 | 18 | 4 | 10.1 | 3 | 1.0 | 3 |
См. также
- Метод создания:
Document.createTreeWalker(). - Соответствующий интерфейс:
NodeIterator.
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker