CodeGym /Cursos /Frontend SELF ES /Creación y eliminación de elementos DOM

Creación y eliminación de elementos DOM

Frontend SELF ES
Nivel 41 , Lección 2
Disponible

3.1 Creación de elementos

Trabajar con el DOM (Document Object Model) incluye no solo navegar por los elementos existentes, sino también crear nuevos elementos, insertarlos en el documento y eliminarlos. Ahora vamos a ver diferentes métodos y enfoques para crear y eliminar elementos en el DOM.

Método document.createElement()

El método principal para crear un nuevo elemento en el DOM es document.createElement(). Este método recibe el nombre de la etiqueta del elemento que deseas crear y devuelve un nuevo elemento vacío.

Ejemplo:

JavaScript
    
      const newDiv = document.createElement('div');
    
  

Agregar contenido a un elemento

Después de crear un nuevo elemento, puedes llenarlo con contenido. Esto puede ser texto, otros elementos o una combinación de ambos.

Ejemplo:

JavaScript
    
      const newDiv = document.createElement('div');
      newDiv.textContent = 'This is a new div element';
    
  

También puedes usar la propiedad innerHTML para añadir contenido HTML.

Ejemplo:

JavaScript
    
      const newDiv = document.createElement('div');
      newDiv.innerHTML = '<strong>This is a new div element with bold text</strong>';
    
  

3.2 Inserción de elementos en el DOM

El elemento creado debe ser añadido al documento. Hay varios métodos para insertar elementos en el DOM:

1. Método appendChild()

El método appendChild() agrega un elemento al final de la lista de elementos hijos de un elemento padre especificado.

Ejemplo:

HTML
    
      <html>
        <head>
          <title>Document</title>
        </head>
        <body>
          <div>This is an old div element</div>
        </body>
      </html>
    
  
JavaScript
    
      const newDiv = document.createElement('div');
      newDiv.textContent = 'This is a new div element';

      const body = document.querySelector('body');
      body.appendChild(newDiv);
    
  

2. Método insertBefore()

El método insertBefore() añade un elemento antes del elemento hijo especificado de un elemento padre.

Ejemplo:

HTML
    
      <html>
        <head>
          <title>Document</title>
        </head>
        <body>
          <div>This is a old div element</div>
          <p>This is a paragraph</p>
        </body>
      </html>
    
  
JavaScript
    
      const newDiv = document.createElement('div');
      newDiv.textContent = 'This is a new div element';

      const body = document.querySelector('body');
      const referenceElement = document.querySelector('p');
      body.insertBefore(newDiv, referenceElement);
    
  

3. Método append()

El método append() añade uno o más nodos o cadenas al final de la lista de elementos hijos del elemento padre especificado.

Ejemplo:

HTML
    
      <html>
        <head>
          <title>Document</title>
        </head>
        <body>
          <div>This is an old div element</div>
        </body>
      </html>
    
  
JavaScript
    
      const newDiv = document.createElement('div');
      newDiv.textContent = 'This is a new div element';

      const body = document.querySelector('body');
      body.append(newDiv);
    
  

4. Método prepend()

El método prepend() añade uno o más nodos o cadenas al comienzo de la lista de elementos hijos del elemento padre especificado.

Ejemplo:

HTML
    
      <html>
        <head>
          <title>Document</title>
        </head>
        <body>
          <div>This is an old div element</div>
        </body>
      </html>
    
  
JavaScript
    
      const newDiv = document.createElement('div');
      newDiv.textContent = 'This is a new div element';

      const body = document.querySelector('body');
      body.prepend(newDiv);
    
  

3.3 Clonación de elementos

El método cloneNode() permite clonar un elemento. La clonación puede ser profunda (con copia de todos los elementos hijos) o superficial (sólo el propio elemento).

Ejemplo de clonación profunda:

HTML
    
      <html>
        <head>
          <style>
            div {
              padding: 5px;
              min-height: 50px;
              color: #fff;
              border-bottom: 1px solid lightblue;
              background: mediumpurple;
            }
          </style>
          <title>Document</title>
        </head>
        <body>
          <div>
            This is a div element
            <ul>
              <li>Element 1</li>
              <li>Element 2</li>
              <li>Element 3</li>
            </ul>
          </div>
        </body>
      </html>
    
  
JavaScript
    
      const originalDiv = document.querySelector('div');
      const clonedDiv = originalDiv.cloneNode(true);

      document.body.appendChild(clonedDiv);
    
  

Ejemplo de clonación superficial:

HTML
    
      <html>
        <head>
          <style>
            div {
              padding: 5px;
              min-height: 50px;
              color: #fff;
              border-bottom: 1px solid lightblue;
              background: mediumpurple;
            }
          </style>
          <title>Document</title>
        </head>
        <body>
          <div>
            This is a div element
            <ul>
              <li>Element 1</li>
              <li>Element 2</li>
              <li>Element 3</li>
            </ul>
          </div>
        </body>
      </html>
    
  
JavaScript
    
      const originalDiv = document.querySelector('div');
      const clonedDiv = originalDiv.cloneNode(false);

      document.body.appendChild(clonedDiv);
    
  

El elemento <div> fue clonado, se puede ver gracias a los estilos, pero sus elementos hijos (el nodo de texto "This is a div element" y <ul>) no fueron clonados.

3.4 Eliminación de elementos

1. Método removeChild()

El método removeChild() elimina un elemento hijo de un elemento padre.

Ejemplo:

HTML
    
      <html>
        <head>
          <title>Document</title>
        </head>
        <body>
          <div>
            This is a div element
            <p>This is a paragraph</p>
          </div>
        </body>
      </html>
    
  
JavaScript
    
      const parent = document.querySelector('div');
      const child = document.querySelector('p');
      parent.removeChild(child);
    
  

2. Método remove()

El método remove() elimina un elemento del DOM directamente.

Ejemplo:

HTML
    
      <html>
        <head>
          <title>Document</title>
        </head>
        <body>
          <div>This is a div element</div>
          <p>This is a paragraph</p>
        </body>
      </html>
    
  
JavaScript
    
      const element = document.querySelector('div');
      element.remove();
    
  

3. Limpieza del contenido de un elemento

Se puede usar el método innerHTML para eliminar todo el contenido de un elemento, asignándole una cadena vacía.

Ejemplo:

HTML
    
      <html>
        <head>
          <title>Document</title>
          <style>
            div {
              min-height: 200px;
              background: bisque;
            }
          </style>
        </head>
        <body>
          <div>
            This is a div element
            <p>This is a paragraph</p>
          </div>
        </body>
      </html>
    
  
JavaScript
    
      const element = document.querySelector('div');
      element.innerHTML = '';
    
  

4. Eliminación de todos los elementos hijos

Para eliminar todos los elementos hijos, se puede usar un ciclo o el método innerHTML.

Ejemplo con un ciclo:

HTML
    
      <html>
        <head>
          <title>Document</title>
        </head>
          <style>
            div {
              min-height: 200px;
              background: bisque;
            }
          </style>
        <body>
          <div>
            This is a div element
            <p>This is a paragraph</p>
            <p>This is a paragraph</p>
            <p>This is a paragraph</p>
          </div>
        </body>
      </html>
    
  
JavaScript
    
      const parent = document.querySelector('div');
      while (parent.firstChild) {
        parent.removeChild(parent.firstChild);
      }
    
  

Ejemplo con innerHTML:

HTML
    
      <html>
        <head>
          <title>Document</title>
            <style>
              div {
                min-height: 200px;
                background: bisque;
              }
            </style>
        </head>
        <body>
          <div>
            This is a div element
            <p>This is a paragraph</p>
            <p>This is a paragraph</p>
            <p>This is a paragraph</p>
            <ul>
              <li>Element 1</li>
              <li>Element 2</li>
              <li>Element 3</li>
            </ul>
          </div>
        </body>
      </html>
    
  
JavaScript
    
      const parent = document.querySelector('div');
      parent.innerHTML = '';
    
  
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION