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

FonctionnalitéChromeEdgeFirefoxInternet ExplorerOperaSafari
Support simple1 Oui2993
acceptNode1122993
FonctionnalitéAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Support simple Oui Oui Oui493 Oui
acceptNode Oui Oui Oui493 Oui

Voir aussi

Étiquettes et contributeurs liés au document

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