Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

Document : méthode createNodeIterator()

Baseline Widely available

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.

La méthode createNodeIterator() de l'interface Document retourne un nouvel objet NodeIterator.

Syntaxe

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

Paramètres

root

Le nœud racine à partir duquel commencer le parcours du NodeIterator.

whatToShow Facultatif

Un unsigned long optionnel représentant un masque de bits créé en combinant les propriétés constantes de NodeFilter. C'est un moyen pratique de filtrer certains types de nœuds. Par défaut, il est défini sur 0xFFFFFFFF représentant la constante SHOW_ALL.

Constante Valeur numérique Description
NodeFilter.SHOW_ALL 0xFFFFFFFF Affiche tous les nœuds.
NodeFilter.SHOW_ATTRIBUTE 0x2 Affiche les nœuds Attr.
NodeFilter.SHOW_CDATA_SECTION 0x8 Affiche les nœuds CDATASection.
NodeFilter.SHOW_COMMENT 0x80 Affiche les nœuds Comment.
NodeFilter.SHOW_DOCUMENT 0x100 Affiche les nœuds Document.
NodeFilter.SHOW_DOCUMENT_FRAGMENT 0x400 Affiche les nœuds DocumentFragment.
NodeFilter.SHOW_DOCUMENT_TYPE 0x200 Affiche les nœuds DocumentType.
NodeFilter.SHOW_ELEMENT 0x1 Affiche les nœuds Element.
NodeFilter.SHOW_ENTITY Obsolète 0x20 Héritage, plus efficace.
NodeFilter.SHOW_ENTITY_REFERENCE Obsolète 0x10 Héritage, plus efficace.
NodeFilter.SHOW_NOTATION Obsolète 0x800 Héritage, plus efficace.
NodeFilter.SHOW_PROCESSING_INSTRUCTION 0x40 Affiche les nœuds ProcessingInstruction.
NodeFilter.SHOW_TEXT 0x4 Affiche les nœuds Text.

Note : La constante NodeFilter.SHOW_ATTRIBUTE n'est efficace que lorsque la racine est un nœud attribut. Comme le parent de tout nœud Attr est toujours null, TreeWalker.nextNode() et TreeWalker.previousNode() ne retourneront jamais un nœud Attr. Pour parcourir les nœuds Attr, utilisez Element.attributes à la place.

filter Facultatif

Une fonction de rappel ou un objet avec une méthode acceptNode(). La fonction ou la méthode sera appelée pour chaque nœud dans le sous-arbre basé sur la racine qui est accepté comme inclus par le drapeau whatToShow pour déterminer s'il faut l'inclure ou non dans la liste des nœuds itérables. La méthode doit renvoyer l'une des valeurs NodeFilter.FILTER_ACCEPT, NodeFilter.FILTER_REJECT ou NodeFilter.FILTER_SKIP. Voir l'exemple.

Pour createNodeIterator, les valeurs NodeFilter.FILTER_REJECT et NodeFilter.FILTER_SKIP sont équivalentes. Ce nœud ne sera pas inclus dans la liste des nœuds itérables, mais ses enfants continueront à être parcourus.

Valeur de retour

Un nouvel objet NodeIterator.

Exemples

js
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);
}

Le même exemple, mais en utilisant un objet avec une méthode acceptNode() :

js
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);
}

Spécifications

Specification
DOM
# dom-document-createnodeiterator

Compatibilité des navigateurs