Spec-Zone.ru › Web APIs

Документ: метод createNodeIterator()

Базовая реализация Широко доступна

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с июля 2015 года.

  • Узнать больше
  • Полная совместимость
  • Отправить отзыв

Метод Document.createNodeIterator() возвращает новый объект NodeIterator.

Синтаксис

createNodeIterator(root)
createNodeIterator(root, whatToShow)
createNodeIterator(root, whatToShow, filter)

Параметры

root

Узловой элемент, с которого начинается обход NodeIterator.

whatToShow Необязательно

Необязательный unsigned long маской, созданной путем объединения константных свойств NodeFilter. Это удобный способ фильтрации узлов определенного типа. По умолчанию используется 0xFFFFFFFF, представляющая константу SHOW_ALL.

Константа Числовое значение Описание
NodeFilter.SHOW_ALL 4294967295 (максимальное значение unsigned long) Отображает все узлы.
NodeFilter.SHOW_ATTRIBUTE Устаревший 2 Отображает узлы атрибутов Attr. Это имеет смысл только при создании TreeWalker с узлом Attr в качестве корневого. В этом случае это означает, что узел атрибута будет отображаться первым в итерации или обходе. Поскольку атрибуты никогда не являются дочерними узлами других узлов, они не отображаются при обходе по дереву документа.
NodeFilter.SHOW_CDATA_SECTION Устаревший 8 Отображает узлы CDATASection.
NodeFilter.SHOW_COMMENT 128 Отображает узлы Comment.
NodeFilter.SHOW_DOCUMENT 256 Отображает узлы Document.
NodeFilter.SHOW_DOCUMENT_FRAGMENT 1024 Отображает узлы DocumentFragment.
NodeFilter.SHOW_DOCUMENT_TYPE 512 Отображает узлы DocumentType.
NodeFilter.SHOW_ELEMENT 1 Отображает узлы Element.
NodeFilter.SHOW_ENTITY Устаревший 32 Устаревшее, больше не используется.
NodeFilter.SHOW_ENTITY_REFERENCE Устаревший 16 Устаревшее, больше не используется.
NodeFilter.SHOW_NOTATION Устаревший 2048 Устаревшее, больше не используется.
NodeFilter.SHOW_PROCESSING_INSTRUCTION 64 Отображает узлы ProcessingInstruction.
NodeFilter.SHOW_TEXT 4 Отображает узлы Text.
filter Необязательно

Функция обратного вызова или объект с методом acceptNode(). Функция или метод будут вызываться для каждого узла в поддереве, основанном на корне, который принимается во внимание по флагу whatToShow, чтобы определить, следует ли включать его в список итерируемых узлов. Метод должен возвращать одно из значений NodeFilter.FILTER_ACCEPT, NodeFilter.FILTER_REJECT, или NodeFilter.FILTER_SKIP. См. Пример.

Для createNodeIterator, значения NodeFilter.FILTER_REJECT и NodeFilter.FILTER_SKIP эквивалентны. Этот узел не будет включен в список итерируемых узлов, но его дочерние узлы будут продолжать итерироваться.

Возвращаемое значение

Новый объект NodeIterator.

Примеры

const nodeIterator = document.createNodeIterator(
  document.body,
  NodeFilter.SHOW_ELEMENT,
  (node) =>
    node.nodeName.toLowerCase() === "p"
      ? NodeFilter.FILTER_ACCEPT
      : NodeFilter.FILTER_REJECT,
);
const pars = [];
let currentNode;

while ((currentNode = nodeIterator.nextNode())) {
  pars.push(currentNode);
}

То же самое, но с использованием объекта с методом acceptNode():

const nodeIterator = document.createNodeIterator(
  document.body,
  NodeFilter.SHOW_ELEMENT,
  {
    acceptNode(node) {
      return node.nodeName.toLowerCase() === "p"
        ? NodeFilter.FILTER_ACCEPT
        : NodeFilter.FILTER_REJECT;
    },
  },
);
const pars = [];
let currentNode;

while ((currentNode = nodeIterator.nextNode())) {
  pars.push(currentNode);
}

Спецификации

Спецификация
DOM
# dom-document-createnodeiterator

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
createNodeIterator 1 12 1 9 3 18 4 10.1 1 1.0 4.4

© 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/Document/createNodeIterator

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API