Important : Cette traduction est obsolète et doit être mise à jour par rapport à l'article anglais.

Un Node (nœud) est une interface de laquelle un nombre d'objets de type DOM API héritent ; il permet à ces différents types d'être traités de manière similaire, par exemple en héritant du même ensemble de méthodes, ou en étant testés de manière similaire.

Les interfaces suivantes héritent toutes des propriétés et méthodes de Node : Document, Element, CharacterData (dans lequel Text, Comment, et CDATASection héritent), ProcessingInstruction, DocumentFragment, DocumentType, Notation, Entity, EntityReference

Ces interfaces peuvent retourner "null" dans certains cas particuliers lorsque les méthodes ou propriétés ne sont pas pertinentes. Elles peuvent aussi générer une exception - par exemple lors de l'ajout d'un enfant à un type de node pour lequel aucun enfant ne peut exister.

 

Propriétés

Hériter les propriétés de ses parents EventTarget.[1]

Node.baseURI Lecture seule

Retourne une chaîne DOMString représentant l'URL de base. Le concept d'URL de base change d'une langue à l'autre; en HTML, il correspond au protocole, au nom de domaine et à la structure du répertoire, c'est tout jusqu'au dernier '/'.

Node.baseURIObject

(Non disponible pour le contenu Web). L'objet nsIURI en lecture seule représentant l'URI de base pour l'élément.

Node.childNodes Lecture seule

Renvoie un NodeList contenant tous les enfants de ce nœud. NodeList signifie que si les enfants du Node changent, l'objet NodeList est automatiquement mis à jour.

Node.firstChild Lecture seule

Renvoie un Node représentant le premier nœud enfant direct de ce nœud, ou null s'il n'a pas d'enfant.

Node.lastChild Lecture seule

Retourne un Node représentant le dernier nœud enfant direct de ce nœud, ou null s'il n'a pas d'enfant.

Node.nextSibling Lecture seule

Retourne un Node représentant le nœud suivant dans l'arbre, ou null s'il n'y en a pas.

Node.nodeName Lecture seule

Retourne un DOMString contenant le nom du nœud. La structure du nom diffère du type de nœud. Par exemple, un HTMLElement contiendra le nom de la balise correspondante, comme 'audio'  pour un HTMLAudioElement, un nœud Text doit avoir la chaîne '#text', ou un  Document  doit avoir la chaîne '#document'..

Node.nodePrincipal

Un nsIPrincipal représentant le nœud principal.

Node.nodeTypeLecture seule

Retourne un unsigned short (non signé) représentant le type du nœud. Les valeurs possibles sont :

Nom Valeur
ELEMENT_NODE 1
ATTRIBUTE_NODE 2
TEXT_NODE 3
CDATA_SECTION_NODE 4
ENTITY_REFERENCE_NODE 5
ENTITY_NODE 6
PROCESSING_INSTRUCTION_NODE 7
COMMENT_NODE 8
DOCUMENT_NODE 9
DOCUMENT_TYPE_NODE 10
DOCUMENT_FRAGMENT_NODE 11
NOTATION_NODE 12
Node.nodeValue

Retourne / définit la valeur du nœud courant.

Node.ownerDocument Lecture seule

Retourne le Document  auquel ce noeud appartient. Si aucun document ne lui est associé, il retourne null .

Node.parentNode Lecture seule

Retourne un Node qui est le parent de ce nœud. S'il n'existe pas, parce qu'il est en haut de l'arbre ou parce qu'il ne participe pas à un arbre, cette propriété retourne null .

Node.parentElement Lecture seule

Retourne un Element qui est le parent de ce nœud.  Si le nœud n'a aucun parent ou si ce parent n'est pas un  Element , cette propriété retourne null.

Node.previousSibling Lecture seule

Retourne un Node représentant le nœud précédent dans l'arbre, ou  null s'il n'y en a pas.

Node.textContent

Retourne / définit le contenu textuel d'un élément et de tous ses descendants.

Propriétés démultipliées

Node.localName Lecture seule

Retourne un DOMString  représentant la partie locale du nom d'un élément.

Note : Dans Firefox 3.5 et versions antérieures, la propriété saisit le nom local pour les éléments HTML (mais pas les éléments XHTML). Dans les versions ultérieures, cela ne se produit pas, donc la propriété est en minuscule pour HTML et XHTML.

Node.namespaceURI Lecture seule

L'URI du "Namespace" de ce nom, ou  null s'il n'y en a pas.

Note : Dans Firefox 3.5 et versions antérieures, les éléments HTML ne contiennent aucun "namespace". Dans les versions ultérieures, les éléments HTML sont dans le "namespace" https://www.w3.org/1999/xhtml/  pour HTML et XML. 

Node.prefix Lecture seule

Est une DOMString représentant le préfixe du "namespace" du nœud, ou null  si aucun préfixe n'est spécifié.

Méthodes

Hériter des méthodes de son parent, EventTarget.[1]

Node.appendChild()

Ajoute l'argument childNode spécifié comme dernier enfant au noeud actuel.
Si l'argument fait référence à un noeud existant sur l'arborescence DOM, le nœud sera détaché de sa position actuelle et attaché à la nouvelle position.

Node.cloneNode()

Clône un Node , et éventuellement, tout son contenu. Par défaut, il duplique le contenu de ce nœud.

Node.compareDocumentPosition()

Compare la position du nœud courant par rapport à un autre nœud dans tout autre document.

Node.contains()

Retourne une valeur Boolean  indiquant si un noeud est un descendant d'un noeud donné ou non

Node.getRootNode()

Retourne la racine de l'objet contextuel qui comprend éventuellement la "Shadow root" si elle est disponible.

Node.hasChildNodes()

Retourne un Boolean indiquant si l'élément a des noeuds enfants ou non.

Node.insertBefore()

Insère un Node avant le nœud de référence en tant qu'enfant du noeud actuel.

Node.isDefaultNamespace()

Accepte une URI de "namespace" comme argument et retourne une valeur Boolean avec true si le "namespace" est celui par défaut du noeud donné ou false sinon.

Node.isEqualNode()

Retourne une valeur Boolean qui indique si oui ou non deux noeuds sont du même type et si tous leurs points de données définis correspondent.

Node.isSameNode()

Retourne une valeur Boolean indiquant si les deux noeuds sont ou non identiques (c'est-à-dire qu'ils font référence au même objet).

Node.lookupPrefix()

Retourne une DOMString contenant le préfixe d'une URI d'un "namespace" donné, s'il est présent, et null sinon.

Node.normalize()

Nettoye tous les nœuds de texte en-dessous de cet élément (fusionne adjacent, supprime vide).

Node.removeChild()

Supprime un nœud enfant depuis l'élément courant, qui doit être un enfant de ce nœud.

Node.replaceChild()

Remplace un Node enfant du nœud courant avec le second donné dans le paramètre.

Méthodes obsolètes

Node.getFeature()

x

Node.getUserData()

Permet à un utilisateur d'obtenir un DOMUserData à partir du nœud.

Node.hasAttributes()

Retourne un Boolean indiquant si l'élément possède des attributs ou non.

Node.isSupported()

Retourne une marque Boolean qui contient le résultat d'un test si l'implémentation DOM implémente une caractéristique spécifique et si cette fonctionnalité est prise en charge par le nœud spécifique.

Node.setUserData()

Permet à un utilisateur d'attacher ou d'enlever,  DOMUserData du nœud.

Exemples

Parcourir tous les nœuds enfants

La fonction suivante parcourt de manière récursive tous les nœuds enfants d'un noeud et exécute une fonction de rappel sur eux (et sur le nœud parent lui-même).

function DOMComb (oParent, oCallback) {
  if (oParent.hasChildNodes()) {
    for (var oNode = oParent.firstChild; oNode; oNode = oNode.nextSibling) {
      DOMComb(oNode, oCallback);
    }
  }
  oCallback.call(oParent);
}

Syntaxe

DOMComb(parentNode, callbackFunction);

Description

Suit le cycle récursif de tous les nœuds enfants d'un parentNode et le parentNode lui-même, et exécute la fonction callbackFunction sur eux commecet object.

Paramètres

parentNode

Le nœud parent (Node Object)

callbackFunction

La fonction de rappel (Function).

Exemples d'utilisation

L'exemple suivant envoie à la console.log le contenu texte du corps :

function printContent () {
  if (this.nodeValue) { console.log(this.nodeValue); }
}

onload = function () {
  DOMComb(document.body, printContent);
};

Supprime tous les enfants imbriqués dans un nœud

Element.prototype.removeAll = function () {
  while (this.firstChild) { this.removeChild(this.firstChild); }
  return this;
};

Exemple d'utilisation

/* ... an alternative to document.body.innerHTML = "" ... */
document.body.removeAll();

Spécifications

Spécification Statut Commentaire
DOM
La définition de 'Node' dans cette spécification.
Standard évolutif Supprime les propriétés suivantes : attributes, namespaceURI, prefix, et localName.
Supprime les méthodes suivantes : isSupported(), hasAttributes(), getFeature(), setUserData(), et getUserData().
Document Object Model (DOM) Level 3 Core Specification
La définition de 'Node' dans cette spécification.
Obsolete Les méthodes insertBefore(), replaceChild(), removeChild(), etappendChild() renvoient un autre type d'erreur (NOT_SUPPORTED_ERR) si elles sont appelées par Document.
La méthode normalize()  a été modifiée, ainsi ce mode Text peut aussi être normalisé si la marque DOMConfiguration est définie.
Ajout des méthodes suivantes : compareDocumentPosition(), isSameNode(), lookupPrefix(), isDefaultNamespace(), lookupNamespaceURI(), isEqualNode(), getFeature(), setUserData(), et getUserData().
Ajout des propriétés suivantes : baseURI et textContent.
Document Object Model (DOM) Level 2 Core Specification
La définition de 'Node' dans cette spécification.
Obsolete La propriété ownerDocumenta été légèrement modifiée pour que  DocumentFragment renvoie également null.
Ajout des propriétés suivantes : namespaceURI, prefix, et localName.
Ajout des méthodes suivantes : normalize(), isSupported() et hasAttributes().
Document Object Model (DOM) Level 1 Specification
La définition de 'Node' dans cette spécification.
Obsolete Définition initiale

Compatibilité des navigateurs

Fonctionnalité Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari
Basic support (Oui)[1] (Oui) 1.0 (1.7 ou moins) (Oui) (Oui)[1] (Oui)[1]
getFeature() Pas de support ? 1.0 (1.7 ou moins)
Pas de support7.0 (7.0)
? Pas de support Pas de support
getUserData(), setUserData() and hasAttributes() Pas de support ? 1.0 (1.7 ou moins)
Pas de support22.0 (22.0)
? Pas de support Pas de support
isSameNode() (Oui) ? 1.0 (1.7 ou moins)
Removed in 10 (10)
Returned in 48 (48)
? Pas de support Pas de support
isSupported() Pas de support ? 1.0 (1.7 ou moins) ? ? ?
attributes Pas de support ? 1.0 (1.7 ou moins)
Pas de support22.0 (22.0)[2]
Pas de support Pas de support Pas de support
rootNode() ? ? CompatGeckoDesktop(48)}} ? ? ?
namespaceURI, localName, prefix (Oui)
Pas de support46.0[3]
? (Oui)
Pas de support48.0[3]
? ? ?
getRootNode(), and rootNode deprecated 54.0 ? 53 (53) ? 41 ?
Feature Android Android Webview Edge Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile Chrome for Android
Basic support ? (Oui)[1] (Oui) 1.0 (1.0) (Oui) (Oui)[1] (Oui)[1] (Oui)[1]
getFeature() Pas de support Pas de support ? 1.0 (1.0)
Pas de support7.0 (7.0)
? Pas de support Pas de support Pas de support
getUserData(), setUserData() and hasAttributes() Pas de support Pas de support ? ? ? ? ? Pas de support
isSameNode() ? (Oui) ?

1.0 (1.7 ou moins)
Removed in 10 (10)
Returned in 48 (48)

? ? ? (Oui)
isSupported() ? Pas de support ? ? ? ? ? Pas de support
attributes ? Pas de support ? ? ? ? ? Pas de support
rootNode() ? Pas de support ? 48.0 (48) ? ? ? Pas de support
namespaceURI, localName, prefix ? Pas de support ? (Oui)
Pas de support48.0[3]
? ? ? Pas de support
getRootNode(), and rootNode deprecated Pas de support 54.0 ? 53.0 (53) ?

  [1] WebKit et les anciennes versions de Blink incorrectement ne font pas hériter Node  à partir de EventTarget .

[2] Dans Gecko 22.0 (Firefox 22.0 / Thunderbird 22.0 / SeaMonkey 2.19), la propriété attributes a été déplacée vers Element.

[3] Les propriétés ont été déplacées vers les API Element et Attr en conformité avec la norme DOM4.

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : loella16, 3dos, SphinxKnight, Hell_Carlito, teoli, jsx, tregagnon, Julien.stuby
 Dernière mise à jour par : loella16,