Document.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.
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. whatToShowFacultatif-
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éfaut0xFFFFFFFFrepré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_ATTRIBUTEObsolète2Affiche l'attribut Attrdes noeuds. Cela n'a de sens que lors de la création d'unTreeWalkeravec un noeudAttrcomme 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_SECTIONObsolète8Affiche les noeuds CDATASection.NodeFilter.SHOW_COMMENT128Affiche les noeuds Comment.NodeFilter.SHOW_DOCUMENT256Affiche les noeuds Document.NodeFilter.SHOW_DOCUMENT_FRAGMENT1024Affiche les noeuds DocumentFragment.NodeFilter.SHOW_DOCUMENT_TYPE512Affiche les noeuds DocumentType.NodeFilter.SHOW_ELEMENT1Affiche les noeuds Element.NodeFilter.SHOW_ENTITYObsolète32Affiche les noeuds Entity. Cela n'a de sens que lors de la création d'unTreeWalkeravec un noeudEntitycomme racine ; dans ce cas, il signifie que le noeud d'entitéEntityapparaî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_REFERENCEObsolète16Affiche les noeuds EntityReference.NodeFilter.SHOW_NOTATIONObsolète2048Affiche les noeuds Notation. Cela n'a de sens que lors de la création d'unTreeWalkeravec un noeudNotationcomme racine ; dans ce cas, il signifie que le noeudNotationapparaî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_INSTRUCTION64Affiche les noeuds ProcessingInstruction.NodeFilter.SHOW_TEXT4Affiche les noeuds Text. filterFacultatif-
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_REJECTouNodeFilter.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