Movatterモバイル変換


[0]ホーム

URL:


  1. Tecnología web para desarrolladores
  2. API web
  3. Node

Esta página ha sido traducida del inglés por la comunidad.Aprende más y únete a la comunidad de MDN Web Docs.

View in EnglishAlways switch to English

Node

Baseline Widely available *

This feature is well established and works across many devices and browser versions. It’s been available across browsers since julio de 2015.

* Some parts of this feature may have varying levels of support.

La interfazDOMNode es una clase base abstracta en la que se basan muchos otros objetos de la API DOM, lo que permite que esos tipos de objetos se usen de manera similar y, a menudo, intercambiable.Como clase abstracta, no existe tal cosa como un simple objetoNode. Todos los objetos que implementan la funcionalidadNode se basan en una de sus subclases. Los más notables sonDocument,Element yDocumentFragment.

Además, cada tipo de nodo de DOM está representado por una interfaz basada enNode.Estos incluyenAttr,CharacterData (en los queText,Comment,CDATASection yProcessingInstruction están basados) yDocumentType.

En algunos casos, es posible que una característica particular de la interfaz baseNode no se aplique a una de sus interfaces secundarias; en ese caso, el nodo heredero puede devolvernull o generar una excepción, según las circunstancias. Por ejemplo, intentar agregar elementos secundarios a un tipo de nodo que no puede tener elementos secundarios generará una excepción.

EventTarget Node

Propiedades de instancia

Además de las propiedades a continuación,Node hereda propiedades de su padre,EventTarget.

Node.baseURIRead only

Devuelve una cadena que representa la URL base del documento que contiene elNode.

Node.childNodesRead only

Devuelve unNodeList en vivo que contiene todos los elementos secundarios de este nodo (incluidos elementos, texto y comentarios). UnNodeList en vivo significa que si los hijos deNode cambian, el objetoNodeList se actualiza automáticamente.

Node.firstChildRead only

Devuelve unNode que representa el primer nodo hijo directo del nodo, onull si el nodo no tiene ningún hijo.

Node.isConnectedRead only

Un valor booleano que indica si el nodo está conectado o no (directa o indirectamente) al objeto de contexto, por ejemplo el objetoDocument en el caso del DOM normal, oShadowRoot en el caso de un DOM oculto.

Node.lastChildRead only

Devuelve unNode que representa el último nodo hijo directo del nodo, onull si el nodo no tiene ningún hijo.

Node.nextSiblingRead only

Devuelve unNode que representa el siguiente nodo en el árbol, onull si no existe tal nodo.

Node.nodeNameRead only

Devuelve una cadena que contiene el nombre deNode. La estructura del nombre diferirá con el tipo de nodo. Por ejemplo, unHTMLElement contendrá el nombre de la etiqueta correspondiente, como'audio' para unHTMLAudioElement, unText tendrá la cadena'#text', o un nodoDocument tendrá la cadena'#document'.

Node.nodeTypeRead only

Devuelve ununsigned short que representa el tipo del nodo. Los valores posibles son:

NombreValor
ELEMENT_NODE1
ATTRIBUTE_NODE2
TEXT_NODE3
CDATA_SECTION_NODE4
PROCESSING_INSTRUCTION_NODE7
COMMENT_NODE8
DOCUMENT_NODE9
DOCUMENT_TYPE_NODE10
DOCUMENT_FRAGMENT_NODE11
Node.nodeValue

Devuelve/Establece el valor del nodo actual.

Node.ownerDocumentRead only

Devuelve elDocument al que pertenece este nodo. Si el nodo es en sí mismo un documento, devuelvenull.

Node.parentNodeRead only

Devuelve unNode que es el padre de este nodo. Si no existe tal nodo, como si este nodo es la parte superior del árbol o si no participa en un árbol, esta propiedad devuelvenull.

Node.parentElementRead only

Devuelve unElement que es el padre de este nodo. Si el nodo no tiene padre, o si ese padre no esElement, esta propiedad devuelvenull.

Node.previousSiblingRead only

Devuelve unNode que representa el nodo anterior en el árbol, onull si no existe tal nodo.

Node.textContent

Devuelve/Establece el contenido textual de un elemento y todos sus descendientes.

Métodos de instancia

Además de los métodos a continuación,Node hereda métodos de su padre,EventTarget.

Node.appendChild()

Agrega el argumentochildNode especificado como el último hijo del nodo actual. Si el argumento hace referencia a un nodo existente en el árbol DOM, el nodo se separará de su posición actual y se adjuntará a la nueva posición.

Node.cloneNode()

Clona unNode y, opcionalmente, todo su contenido. Por defecto, clona el contenido del nodo.

Node.compareDocumentPosition()

Compara la posición del nodo actual con otro nodo en cualquier otro documento.

Node.contains()

Devuelve el valortrue ofalse que indica si un nodo es o no descendiente del nodo que llama.

Node.getRootNode()

Devuelve la raíz del objeto de contexto que, opcionalmente, incluye la raíz oculta si está disponible.

Node.hasChildNodes()

Devuelve un valor booleano que indica si el elemento tiene o no nodos secundarios.

Node.insertBefore()

Inserta unNode antes del nodo de referencia como hijo de un nodo principal especificado.

Node.isDefaultNamespace()

Acepta un URI de espacio de nombres como argumento y devuelve un valor booleano con un valor detrue si el espacio de nombres es el espacio de nombres predeterminado en el nodo dado ofalse si no lo es.

Node.isEqualNode()

Devuelve un valor booleano que indica si dos nodos son o no del mismo tipo y todos los puntos de datos que los definen coinciden.

Node.isSameNode()

Devuelve un valor booleano que indica si los dos nodos son iguales o no (es decir, hacen referencia al mismo objeto).

Node.lookupPrefix()

Devuelve una cadena que contiene el prefijo para un URI de espacio de nombres dado, si está presente, ynull si no lo está. Cuando son posibles varios prefijos, el resultado depende de la implementación.

Node.lookupNamespaceURI()

Acepta un prefijo y devuelve el URI del espacio de nombres asociado con él en el nodo dado si lo encuentra (ynull si no). Proporcionarnull para el prefijo devolverá el espacio de nombres predeterminado.

Node.normalize()

Limpia todos los nodos de texto debajo de este elemento (combina adyacentes, elimina vacíos).

Node.removeChild()

Elimina un nodo hijo del elemento actual, que debe ser uns hijo del nodo actual.

Node.replaceChild()

Reemplaza unNode hijo del actual con el segundo dado en el parámetro.

Ejemplos

Eliminar todos los hijos anidados dentro de un nodo

Esta función elimina cada primer hijo de un elemento, hasta que no quede ninguno.

js
function removeAllChildren(element) {  while (element.firstChild) {    element.removeChild(element.firstChild);  }}

El uso de esta función es una sola llamada. Aquí vaciamos el cuerpo del documento:

js
removeAllChildren(document.body);

Una alternativa podría ser establecertextContent a una cadena vacía:document.body.textContent = "".

Recursión a través de nodos hijos

La siguiente función llama recursivamente a una funcióncallback para cada nodo contenido en un nodo raíz (incluida la propia raíz):

js
function eachNode(rootNode, callback) {  if (!callback) {    const nodes = [];    eachNode(rootNode, (node) => {      nodes.push(node);    });    return nodes;  }  if (callback(rootNode) === false) {    return false;  }  if (rootNode.hasChildNodes()) {    for (const node of rootNode.childNodes) {      if (eachNode(node, callback) === false) {        return;      }    }  }}

La función llama recursivamente a una función para cada nodo descendiente derootNode (incluida la propia raíz).

Si se omitecallback, la función devuelveArray en su lugar, que contienerootNode y todos los nodos contenidos dentro.

Si se proporcionacallback y devuelvefalse cuando se llama, el nivel de recurrencia actual se aborta y la función reanuda la ejecución en el nivel del último padre. Esto se puede usar para abortar bucles una vez que se ha encontrado un nodo (como buscar un nodo de texto que contiene una determinada cadena).

La función tiene dos parámetros:

rootNode

El objetoNode cuyos descendientes serán recursivos.

callbackOpcional

Unafuncióncallback opcional que recibe unNode como único argumento. Si se omite,eachNode devuelve unArray de cada nodo contenido dentro derootNode (incluida la propia raíz).

Lo siguiente demuestra un uso real de la funcióneachNode(): buscar texto en una página web.

Usamos una función contenedora llamadagrep para hacer la búsqueda:

js
function grep(parentNode, pattern) {  let matches = [];  let endScan = false;  eachNode(parentNode, (node) => {    if (endScan) {      return false;    }    // Ignora cualquier cosa que no sea un nodo de texto    if (node.nodeType !== Node.TEXT_NODE) {      return;    }    if (typeof pattern === "string" && node.textContent.includes(pattern)) {      matches.push(node);    } else if (pattern.test(node.textContent)) {      if (!pattern.global) {        endScan = true;        matches = node;      } else {        matches.push(node);      }    }  });  return matches;}

Especificaciones

Specification
DOM
# interface-node

Compatibilidad con navegadores

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2026 Movatter.jp