CodeGym /Curso de Java /Frontend SELF ES /Introducción al DOM

Introducción al DOM

Frontend SELF ES
Nivel 41 , Lección 0
Disponible

1.1 Conceptos básicos del DOM

El Modelo de Objetos del Documento (DOM) es una interfaz de programación para documentos web. Representa la estructura del documento como un árbol de nodos, donde cada nodo es parte del documento, como un elemento, texto, comentario, etc. Entender el DOM y sus nodos es un aspecto fundamental del trabajo con tecnologías web.

Conceptos básicos del DOM

¿Qué es el DOM?

El DOM (Document Object Model) es una estructura jerárquica que describe el contenido de un documento HTML. Permite a los programas y scripts un acceso dinámico al contenido del documento y modificar su estructura, estilo y contenido.

Nodos y elementos

En el contexto del DOM, todas las partes del documento se consideran como nodos (node). Los nodos pueden ser de varios tipos:

  1. Nodos de elementos: representan las etiquetas HTML.
  2. Nodos de texto: representan texto dentro de los nodos de elementos.
  3. Nodos de comentarios: representan comentarios en HTML.
  4. Nodos de documento: representan el documento en sí.

Árbol de nodos

El DOM es una estructura de árbol donde cada nodo puede tener descendientes (nodos hijos). El nodo raíz es el objeto document, que representa todo el documento HTML.

Ejemplo de estructura DOM:

HTML
    
      <!DOCTYPE html>
      <html>
        <head>
          <title>Document Title</title>
        </head>
        <body>
          <h1>Hello, World!</h1>
          <p>This is a paragraph.</p>
        </body>
      </html>
    
  

Para este documento, el árbol DOM se verá como sigue:

Text
    
      document
      └── html
          ├── head
          │   └── title
          │       └── #text: "Document Title"
          └── body
              ├── h1
              │   └── #text: "Hello, World!"
              └── p
                  └── #text: "This is a paragraph."
    
  

1.2 Tipos de nodos

1. Nodos de elementos

Los nodos de elementos corresponden a las etiquetas HTML. Por ejemplo, el nodo para la etiqueta <body> se llama nodo de elemento.

Ejemplo:

En este ejemplo, <body> y <h1> son nodos de elementos.

HTML
    
      <body>
        <h1>Hello, World!</h1>
      </body>
    
  

2. Nodos de texto

Los nodos de texto contienen texto dentro de los nodos de elementos. Los nodos de texto son descendientes de nodos de elementos y contienen datos en forma de cadena.

Ejemplo:

En este ejemplo, el texto "Hello, World!" es un nodo de texto, descendiente del nodo <h1>.

HTML
    
      <h1>Hello, World!</h1>
    
  

3. Nodos de comentarios

Los nodos de comentarios representan comentarios en HTML, comienzan con <!-- y terminan con -->.

Ejemplo:

En este ejemplo, <!-- This is a comment --> es un nodo de comentario.

HTML
    
      <!-- This is a comment -->

      <p>This is a paragraph.</p>
    
  

4. Nodos de documento

El nodo de documento representa el nodo raíz del árbol DOM y es el nodo padre de todos los demás nodos en el documento.

Ejemplo:

El objeto document en JavaScript representa el nodo de documento:

JavaScript
    
      console.log(document);
    
  

1.3 Interacción con nodos DOM

1. Obtener información de nodos

Las propiedades del objeto nodo permiten obtener información sobre un nodo específico. Por ejemplo, se puede saber el tipo de nodo, su nombre y contenido.

Ejemplo:

HTML
    
      <html>
        <head>
          <title>Mi sitio web</title>
        </head>
        <body>
          <h1>¡Hola, mundo!</h1>
        </body>
      </html>
    
  
JavaScript
    
      const heading = document.querySelector('h1');

      console.log(heading.nodeName); // Mostrará: H1
      console.log(heading.nodeType); // Mostrará: 1 (Nodo de elemento)
      console.log(heading.textContent); // Mostrará: "¡Hola, mundo!"
    
  

2. Modificar contenido de nodos

El contenido de los nodos se puede modificar utilizando las propiedades y métodos del DOM.

Ejemplo:

JavaScript
    
      const paragraph = document.querySelector('p');
      paragraph.textContent = 'Updated text content';
    
  

3. Trabajar con nodos hijos

Cada nodo del DOM puede tener nodos hijos a los que se puede acceder y modificar.

Ejemplo:

HTML
    
      <html>
        <head>
          <title>Mi sitio web</title>
        </head>
        <body>
          <ul>
            <li>Sobre nosotros</li>
            <li>Carrera</li>
            <li>Contacto</li>
          </ul>
        </body>
      </html>
    
  
JavaScript
    
      const list = document.querySelector('ul');
      const firstItem = list.firstElementChild;
      const lastItem = list.lastElementChild;

      console.log(firstItem.textContent); // Mostrará el texto del primer elemento de la lista
      console.log(lastItem.textContent); // Mostrará el texto del último elemento de la lista
    
  

1.4 Propiedades útiles

1. Propiedades nodeName y nodeType

  • nodeName devuelve el nombre del nodo
  • nodeType devuelve el tipo del nodo (por ejemplo, 1 para nodos de elementos, 3 para nodos de texto)

Ejemplo:

HTML
    
      <html>
        <head>
          <title>Mi sitio web</title>
        </head>
        <body>
          <h1>¡Hola, mundo!</h1>
        </body>
      </html>
    
  
JavaScript
    
      const element = document.querySelector('h1');

      console.log(element.nodeName); // Mostrará: H1
      console.log(element.nodeType); // Mostrará: 1
    
  

2. Propiedades textContent e innerHTML

  • textContent devuelve o establece el contenido de texto de un nodo
  • innerHTML devuelve o establece el contenido HTML de un nodo

Ejemplo:

HTML
    
      <html>
        <head>
          <title>Mi sitio web</title>
        </head>
        <body>
          <p>Un <b>interesante</b> y <b>útil</b> párrafo!</p>
        </body>
      </html>
    
  
JavaScript
    
      const element = document.querySelector('p');

      console.log(element.textContent); // Mostrará el contenido de texto del párrafo
      console.log(element.innerHTML); // Mostrará el contenido HTML del párrafo
    
  

3. Propiedades parentNode, childNodes, firstChild y lastChild

  • parentNode devuelve el nodo padre
  • childNodes devuelve una colección de todos los nodos hijos
  • firstChild devuelve el primer nodo hijo
  • lastChild devuelve el último nodo hijo

Ejemplo:

HTML
    
      <html>
        <head>
          <title>Mi sitio web</title>
        </head>
        <body>
          <ul>
            <li>Sobre nosotros</li>
            <li>Carrera</li>
            <li>Contacto</li>
          </ul>
        </body>
      </html>
    
  
JavaScript
    
      const element = document.querySelector('ul');

      console.log(element.parentNode); // Mostrará el nodo padre
      console.log(element.childNodes); // Mostrará la colección de nodos hijos
      console.log(element.firstChild); // Mostrará el primer nodo hijo
      console.log(element.lastChild); // Mostrará el último nodo hijo
    
  
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION