Une interface NodeFilter représente un objet utilisé pour filtrer les noeuds dans un NodeIterator ou TreeWalker. Ils ne savent rien du DOM ni comment traverser les nœuds ; ils savent juste comment évaluer un seul noeud par rapport au filtre fourni.

Le navigateur ne fournit aucun objet implémentant cette interface. C'est l'utilisateur qui doit en écrire un, en adaptant la méthode acceptNode() en fonction des besoins et en l'utilisant avec un objet TreeWalker ou NodeIterator.

Propriétés

Cette interface n'implémente ni n'hérite d'aucune propriété.

Méthodes

Cette interface n'hérite d'aucune méthode.

NodeFilter.acceptNode()
Renvoie un unsigned short (non signé court) qui sera utilisé pour dire si un Node donné peut être accepté ou non par l'algorithme d'itération NodeIterator ou TreeWalker. Cette méthode doit être écrite par l'utilisateur du NodeFilter. Les valeurs retournées possibles sont :
Constante Description
FILTER_ACCEPT Valeur renvoyée par la méthode NodeFilter.acceptNode() quand un noeud doit être accepté.
FILTER_REJECT Valeur à retourner par la méthode NodeFilter.acceptNode() quand le noeud doit être rejeté. Pour TreeWalker, les noeuds enfants sont aussi rejetés. Pour NodeIterator, cette option est équivalente à FILTER_SKIP.
FILTER_SKIP Valeur à retourner par NodeFilter.acceptNode() pour que les noeuds soient ignorés par NodeIterator ou TreeWalker. Les enfants des noeuds ignorés sont toujours considérés. Cela équivaut à "ignorer ce noeud mais pas ses enfants".

Exemple

var nodeIterator = document.createNodeIterator(
  // Noeud à utiliser comme racine
  document.getElementById('someId'),

  // Considérer uniquement les nœuds qui sont des nœuds de texte (nodeType 3)
  NodeFilter.SHOW_TEXT,

  // Objet contenant la fonction à utiliser pour la méthode acceptNode
  // du NodeFilter
    { acceptNode: function(node) {
      // Logique pour déterminer si accepter, rejeter ou ignorer le noeud
      // dans ce cas, n'accepte que les nœuds ayant du contenu
      // autres que les espaces
      if ( ! /^\s*$/.test(node.data) ) {
        return NodeFilter.FILTER_ACCEPT;
      }
    }
  },
  false
);

// Affiche le contenu de tous les noeuds texte non vides qui sont enfants de la racine
var node;

while ((node = nodeIterator.nextNode())) {
  alert(node.data);
}

Spécifications

Spécification Statut Commentaire
DOM
La définition de 'NodeFilter' dans cette spécification.
Standard évolutif  
Document Object Model (DOM) Level 2 Traversal and Range Specification
La définition de 'NodeFilter' dans cette spécification.
Obsolete Définition initiale.

Compatibilité des navigateurs

Update compatibility data on GitHub
OrdinateurMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariWebview AndroidChrome pour AndroidEdge MobileFirefox pour AndroidOpera pour AndroidSafari pour iOSSamsung Internet
Support simpleChrome Support complet 1Edge Support complet OuiFirefox Support complet 2IE Support complet 9Opera Support complet 9Safari Support complet 3WebView Android Support complet OuiChrome Android Support complet OuiEdge Mobile Support complet OuiFirefox Android Support complet 4Opera Android Support complet 9Safari iOS Support complet 3Samsung Internet Android Support complet Oui
acceptNodeChrome Support complet 1Edge Support complet 12Firefox Support complet 2IE Support complet 9Opera Support complet 9Safari Support complet 3WebView Android Support complet OuiChrome Android Support complet OuiEdge Mobile Support complet OuiFirefox Android Support complet 4Opera Android Support complet 9Safari iOS Support complet 3Samsung Internet Android Support complet Oui

Légende

Support complet  
Support complet

Voir aussi

Étiquettes et contributeurs liés au document

Contributeurs à cette page : loella16
Dernière mise à jour par : loella16,