Document.createNodeIterator()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Renvoie un nouvel objet NodeIterator
.
Syntaxe
var nodeIterator = document.createNodeIterator(root, whatToShow, filter);
Valeurs
root
-
Le noeud racine à partir duquel commencer la traversée de
NodeIterator
. whatToShow
Facultatif-
Est un
unsigned long
(long non signé) facultatif représentant un masque de bits créé par la combinaison des constantes de la propriétéNodeFilter
. C'est un moyen pratique de filtrage pour certains types de noeuds. Il est par défaut0xFFFFFFFF
représentant la constanteSHOW_ALL
.Constante Valeur numérique Description NodeFilter.SHOW_ALL
-1
(c'est la valeur numérique maximale duunsigned long
(non signé long))Affiche tous les noeuds. NodeFilter.SHOW_ATTRIBUTE
Obsolète2
Affiche l'attribut Attr
des noeuds. Cela n'a de sens que lors de la création d'unTreeWalker
avec un noeudAttr
comme racine ; dans ce cas, cela signifie que le nœud d'attribut apparaîtra dans la première position de l'itération ou de la traversée. Comme les attributs ne sont jamais des enfants d'autres nœuds, ils n'apparaissent pas lors de la traversée de l'arbre du document.NodeFilter.SHOW_CDATA_SECTION
Obsolète8
Affiche les noeuds CDATASection
.NodeFilter.SHOW_COMMENT
128
Affiche les noeuds Comment
.NodeFilter.SHOW_DOCUMENT
256
Affiche les noeuds Document
.NodeFilter.SHOW_DOCUMENT_FRAGMENT
1024
Affiche les noeuds DocumentFragment
.NodeFilter.SHOW_DOCUMENT_TYPE
512
Affiche les noeuds DocumentType
.NodeFilter.SHOW_ELEMENT
1
Affiche les noeuds Element
.NodeFilter.SHOW_ENTITY
Obsolète32
Affiche les noeuds Entity
. Cela n'a de sens que lors de la création d'unTreeWalker
avec un noeudEntity
comme racine ; dans ce cas, il signifie que le noeud d'entitéEntity
apparaîtra à la première position de la traversée. Étant donné que les entités ne font pas partie de l'arborescence du document, elles n'apparaissent pas lors de la traversée de l'arborescence du document.NodeFilter.SHOW_ENTITY_REFERENCE
Obsolète16
Affiche les noeuds EntityReference
.NodeFilter.SHOW_NOTATION
Obsolète2048
Affiche les noeuds Notation
. Cela n'a de sens que lors de la création d'unTreeWalker
avec un noeudNotation
comme racine ; dans ce cas, il signifie que le noeudNotation
apparaîtra à la première position de la traversée. Étant donné que les entités ne font pas partie de l'arborescence du document, elles n'apparaissent pas lors de la traversée de l'arborescence du document.NodeFilter.SHOW_PROCESSING_INSTRUCTION
64
Affiche les noeuds ProcessingInstruction
.NodeFilter.SHOW_TEXT
4
Affiche les noeuds Text
. filter
Facultatif-
Un objet implémentant l'interface
NodeFilter
; sa méthodeacceptNode()
sera appelée pour chaque nœud du sous-arbre basé à la racine qui est accepté comme inclus par l'indicateur whatToShow pour déterminer s'il faut ou non l'inclure dans la liste des nœuds iterables (une simple fonction de rappel peut également être utilisée à la place). La méthode devrait retourner l'un desNodeFilter.FILTER_ACCEPT
,NodeFilter.FILTER_REJECT
ouNodeFilter.FILTER_SKIP
. Voir l'exemple.
Note :
Avant Gecko 12.0, cette méthode acceptait un quatrième paramètre facultatif (entityReferenceExpansion
). Cela ne faisait pas partie de la spécification DOM4 et a donc été supprimé. Ce paramètre indiquait si les enfants des nœuds de référence d'entité étaient visibles ou non par l'itérateur. Puisque de tels noeuds n'ont jamais été créés dans les navigateurs, ce paramètre n'a eu aucun effet.
Exemple
var nodeIterator = document.createNodeIterator(
document.body,
NodeFilter.SHOW_ELEMENT,
function (node) {
return node.nodeName.toLowerCase() === "p"
? NodeFilter.FILTER_ACCEPT
: NodeFilter.FILTER_REJECT;
},
);
var pars = [];
var currentNode;
while ((currentNode = nodeIterator.nextNode())) {
pars.push(currentNode);
}
Compatibilité des navigateurs
Pris en charge dans FF 3.5+, Chrome 1+, Opera 9+, Safari 3+, IE9+, Edge