Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. Les API Web
  3. Document
  4. Document.createTreeWalker()

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 EnglishAlways switch to English

Document.createTreeWalker()

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 de créationDocument.createTreeWalker() renvoie un nouvel objetTreeWalker.

Syntaxe

js
createTreeWalker(root)createTreeWalker(root, whatToShow)createTreeWalker(root, whatToShow, filter)

Paramètres

root

UnNode (noeud) racine de l'objetTreeWalker, qui est la valeur initiale deTreeWalker.currentNode.

whatToShowFacultatif

Ununsigned long représentant un masque de bits créé par combinaison des propriétés de constante deNodeFilter. C'est un moyen pratique de filtrer pour certains types de noeuds. Il est par défaut0xFFFFFFFF, représentant la constanteNodeFilter.SHOW_ALL.

ConstanteValeur numériqueDescription
NodeFilter.SHOW_ALL 0xFFFFFFFFAffiche tous les noeuds.
NodeFilter.SHOW_ATTRIBUTE 0x2Affiche les noeudsAttr.
NodeFilter.SHOW_CDATA_SECTION 0x8Affiche les noeudsCDATASection.
NodeFilter.SHOW_COMMENT 0x80Affiche les noeudsComment.
NodeFilter.SHOW_DOCUMENT 0x100Affiche les noeudsDocument.
NodeFilter.SHOW_DOCUMENT_FRAGMENT 0x400Affiche les noeudsDocumentFragment.
NodeFilter.SHOW_DOCUMENT_TYPE 0x200Affiche les noeudsDocumentType.
NodeFilter.SHOW_ELEMENT 0x1Affiche les noeudsElement.
NodeFilter.SHOW_ENTITYObsolète0x20Héritage, qui n'est plus en vigueur.
NodeFilter.SHOW_ENTITY_REFERENCEObsolète 0x10Héritage, qui n'est plus en vigueur.
NodeFilter.SHOW_NOTATIONObsolète0x800Héritage, qui n'est plus en vigueur.
NodeFilter.SHOW_PROCESSING_INSTRUCTION 0x40Affiche les noeudsProcessingInstruction.
NodeFilter.SHOW_TEXT 0x4Affiche les noeudsText.

Note :Étant donné que le parent de tout noeudAttr est toujoursnull,TreeWalker.nextNode() etTreeWalker.previousNode() ne renverront jamais un noeudAttr. Pour parcourir les noeudsAttr, utilisez plutôtElement.attributes.

filterFacultatif

Une fonction de rappel ou un objet avec une méthodeacceptNode(), qui retourneNodeFilter.FILTER_ACCEPT,NodeFilter.FILTER_REJECT, ouNodeFilter.FILTER_SKIP. La fonction ou la méthode sera appelée pour chaque noeud de la sous-arborescence basée surroot qui est accepté comme incluse par l'indicateurwhatToShow pour déterminer s'il faut ou non l'inclure dans la liste des noeuds itérables :

  • Si la valeur retournée estNodeFilter.FILTER_ACCEPT, ce noeud est inclus.
  • Si la valeur retournée estNodeFilter.FILTER_REJECT, aucun noeud de la sous-arborescence basée sur ce noeud n'est inclus.
  • Si la valeur retournée estNodeFilter.FILTER_SKIP, ce noeud n'est pas inclus.

Valeur de retour

Un nouvel objetTreeWalker.

Exemples

UtiliserwhatToShow

Cet exemple utilisewhatToShow pour transformer les contenus textuels en majuscules. Notez que les noeuds textuels des descendants de l'élément#root sont également parcourus malgré le fait qu'ils ne soient pas des noeuds enfants de l'élément#root.

HTML

html
<div>  Ceci est un noeud textuel.  <span>Et ceci est un élément <code>span</code>.</span></div>

CSS

css
span {  background-color: aqua;}

JavaScript

js
const treeWalker = document.createTreeWalker(  document.querySelector("#root"),  NodeFilter.SHOW_TEXT,);while (treeWalker.nextNode()) {  const node = treeWalker.currentNode;  node.data = node.data.toUpperCase();}

Résultat

Utilisation du filtre

Cet exemple utilise un filtre pour échapper les contenus textuels. Pour tout noeud textuel, son contenu sera échappé en utilisantencodeURI() s'il est un descendant d'un élément.escape mais pas d'un élément.no-escape.

HTML

html
<div>  <div>    Ceci n'est pas échappé. <span>Mais ceci est échappé.</span>  </div>  <div>Ceci est échappé.</div>  <div>Ceci n'est pas échappé.</div></div><hr /><div>  <div>    Ceci est échappé.    <span>Mais ceci n'est pas échappé.</span>  </div>  <div>Ceci n'est pas échappé.</div></div><hr /><div>  <div>Ceci n'est pas échappé.</div>  <div>Ceci n'est pas échappé.</div></div>

CSS

div {  margin: 0.25em 0;  padding: 0.25em;}span {  display: inline-block;}
css
.escape {  border: dashed;}.no-escape {  border: solid;}

JavaScript

js
const treeWalker = document.createTreeWalker(  document.body,  NodeFilter.SHOW_ELEMENT,  (node) =>    node.classList.contains("no-escape")      ? NodeFilter.FILTER_REJECT      : node.closest(".escape")        ? NodeFilter.FILTER_ACCEPT        : NodeFilter.FILTER_SKIP,);while (treeWalker.nextNode()) {  for (const node of treeWalker.currentNode.childNodes) {    if (node.nodeType === Node.TEXT_NODE && /\S/.test(node.data)) {      // Exclure les noeuds textuels ne contenant que des espaces      node.data = encodeURI(node.data.replace(/\s+/g, " "));    }  }}

Résultat

Spécifications

Specification
DOM
# dom-document-createtreewalker

Compatibilité des navigateurs

Voir aussi

Help improve MDN

Learn how to contribute

Cette page a été modifiée le par lescontributeurs du MDN.


[8]ページ先頭

©2009-2025 Movatter.jp