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
createNodeIterator(root)
createNodeIterator(root, whatToShow)
createNodeIterator(root, whatToShow, filter)
Paramètres
root-
Le nœud racine à partir duquel commencer le parcours du
NodeIterator. whatToShowFacultatif-
Un
unsigned longoptionnel représentant un masque de bits créé en combinant les propriétés constantes deNodeFilter. C'est un moyen pratique de filtrer certains types de nœuds. Par défaut, il est défini sur0xFFFFFFFFreprésentant la constanteSHOW_ALL.Constante Valeur numérique Description NodeFilter.SHOW_ALL0xFFFFFFFFAffiche tous les nœuds. NodeFilter.SHOW_ATTRIBUTE0x2Affiche les nœuds Attr.NodeFilter.SHOW_CDATA_SECTION0x8Affiche les nœuds CDATASection.NodeFilter.SHOW_COMMENT0x80Affiche les nœuds Comment.NodeFilter.SHOW_DOCUMENT0x100Affiche les nœuds Document.NodeFilter.SHOW_DOCUMENT_FRAGMENT0x400Affiche les nœuds DocumentFragment.NodeFilter.SHOW_DOCUMENT_TYPE0x200Affiche les nœuds DocumentType.NodeFilter.SHOW_ELEMENT0x1Affiche les nœuds Element.NodeFilter.SHOW_ENTITYObsolète0x20Héritage, plus efficace. NodeFilter.SHOW_ENTITY_REFERENCEObsolète0x10Héritage, plus efficace. NodeFilter.SHOW_NOTATIONObsolète0x800Héritage, plus efficace. NodeFilter.SHOW_PROCESSING_INSTRUCTION0x40Affiche les nœuds ProcessingInstruction.NodeFilter.SHOW_TEXT0x4Affiche les nœuds Text.Note : La constante
NodeFilter.SHOW_ATTRIBUTEn'est efficace que lorsque la racine est un nœud attribut. Comme le parent de tout nœudAttrest toujoursnull,TreeWalker.nextNode()etTreeWalker.previousNode()ne retourneront jamais un nœudAttr. Pour parcourir les nœudsAttr, utilisezElement.attributesà la place. filterFacultatif-
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 drapeauwhatToShowpour 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 valeursNodeFilter.FILTER_ACCEPT,NodeFilter.FILTER_REJECTouNodeFilter.FILTER_SKIP. Voir l'exemple.Pour
createNodeIterator, les valeursNodeFilter.FILTER_REJECTetNodeFilter.FILTER_SKIPsont é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
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() :
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> |