CodeGym /Corsi /Frontend SELF IT /Creazione e rimozione degli elementi DOM

Creazione e rimozione degli elementi DOM

Frontend SELF IT
Livello 41 , Lezione 2
Disponibile

3.1 Creazione degli elementi

Lavorare con il DOM (Document Object Model) include non solo la navigazione tra elementi esistenti, ma anche la creazione di nuovi elementi, la loro aggiunta al documento e la rimozione. Ora vediamo vari metodi e approcci per creare e rimuovere elementi nel DOM.

Metodo document.createElement()

Il metodo principale per creare un nuovo elemento nel DOM è document.createElement(). Questo metodo accetta il nome del tag dell'elemento che vuoi creare e restituisce un nuovo elemento vuoto.

Esempio:

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

Aggiunta di contenuto all'elemento

Dopo aver creato un nuovo elemento, puoi riempirlo con contenuti. Questo può essere testo, altri elementi o una combinazione di entrambi.

Esempio:

JavaScript
    
      const newDiv = document.createElement('div');
      newDiv.textContent = 'Questo è un nuovo elemento div';
    
  

Puoi anche usare la proprietà innerHTML per aggiungere contenuto HTML.

Esempio:

JavaScript
    
      const newDiv = document.createElement('div');
      newDiv.innerHTML = '<strong>Questo è un nuovo elemento div con testo in grassetto</strong>';
    
  

3.2 Inserimento degli elementi nel DOM

L'elemento creato deve essere aggiunto al documento. Ci sono diversi metodi per inserire gli elementi nel DOM:

1. Metodo appendChild()

Il metodo appendChild() aggiunge un elemento alla fine dell'elenco dei figli di un elemento padre specificato.

Esempio:

HTML
    
      <html>
        <head>
          <title>Document</title>
        </head>
        <body>
          <div>Questo è un vecchio elemento div</div>
        </body>
      </html>
    
  
JavaScript
    
      const newDiv = document.createElement('div');
      newDiv.textContent = 'Questo è un nuovo elemento div';

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

2. Metodo insertBefore()

Il metodo insertBefore() aggiunge un elemento prima di un elemento figlio specificato del padre.

Esempio:

HTML
    
      <html>
        <head>
          <title>Document</title>
        </head>
        <body>
          <div>Questo è un vecchio elemento div</div>
          <p>Questo è un paragrafo</p>
        </body>
      </html>
    
  
JavaScript
    
      const newDiv = document.createElement('div');
      newDiv.textContent = 'Questo è un nuovo elemento div';

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

3. Metodo append()

Il metodo append() aggiunge uno o più nodi o stringhe alla fine dell'elenco dei figli di un elemento padre specificato.

Esempio:

HTML
    
      <html>
        <head>
          <title>Document</title>
        </head>
        <body>
          <div>Questo è un vecchio elemento div</div>
        </body>
      </html>
    
  
JavaScript
    
      const newDiv = document.createElement('div');
      newDiv.textContent = 'Questo è un nuovo elemento div';

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

4. Metodo prepend()

Il metodo prepend() aggiunge uno o più nodi o stringhe all'inizio dell'elenco dei figli di un elemento padre specificato.

Esempio:

HTML
    
      <html>
        <head>
          <title>Document</title>
        </head>
        <body>
          <div>Questo è un vecchio elemento div</div>
        </body>
      </html>
    
  
JavaScript
    
      const newDiv = document.createElement('div');
      newDiv.textContent = 'Questo è un nuovo elemento div';

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

3.3 Clonazione degli elementi

Il metodo cloneNode() permette di clonare un elemento. La clonazione può essere profonda (con la copia di tutti gli elementi figli) o superficiale (solo dell'elemento stesso).

Esempio di clonazione profonda:

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>
            Questo è un elemento div
            <ul>
              <li>Elemento 1</li>
              <li>Elemento 2</li>
              <li>Elemento 3</li>
            </ul>
          </div>
        </body>
      </html>
    
  
JavaScript
    
      const originalDiv = document.querySelector('div');
      const clonedDiv = originalDiv.cloneNode(true);

      document.body.appendChild(clonedDiv);
    
  

Esempio di clonazione superficiale:

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>
            Questo è un elemento div
            <ul>
              <li>Elemento 1</li>
              <li>Elemento 2</li>
              <li>Elemento 3</li>
            </ul>
          </div>
        </body>
      </html>
    
  
JavaScript
    
      const originalDiv = document.querySelector('div');
      const clonedDiv = originalDiv.cloneNode(false);

      document.body.appendChild(clonedDiv);
    
  

L'elemento <div> è stato clonato, come si può vedere dagli stili, ma i suoi elementi figli (il nodo di testo "Questo è un elemento div" e <ul>) non sono stati clonati.

3.4 Rimozione degli elementi

1. Metodo removeChild()

Il metodo removeChild() rimuove un elemento figlio dall'elemento padre.

Esempio:

HTML
    
      <html>
        <head>
          <title>Document</title>
        </head>
        <body>
          <div>
            Questo è un elemento div
            <p>Questo è un paragrafo</p>
          </div>
        </body>
      </html>
    
  
JavaScript
    
      const parent = document.querySelector('div');
      const child = document.querySelector('p');
      parent.removeChild(child);
    
  

2. Metodo remove()

Il metodo remove() rimuove un elemento dal DOM direttamente.

Esempio:

HTML
    
      <html>
        <head>
          <title>Document</title>
        </head>
        <body>
          <div>Questo è un elemento div</div>
          <p>Questo è un paragrafo</p>
        </body>
      </html>
    
  
JavaScript
    
      const element = document.querySelector('div');
      element.remove();
    
  

3. Pulizia del contenuto dell'elemento

Il metodo innerHTML può essere utilizzato per rimuovere tutto il contenuto di un elemento assegnandogli una stringa vuota.

Esempio:

HTML
    
      <html>
        <head>
          <title>Document</title>
          <style>
            div {
              min-height: 200px;
              background: bisque;
            }
          </style>
        </head>
        <body>
          <div>
            Questo è un elemento div
            <p>Questo è un paragrafo</p>
          </div>
        </body>
      </html>
    
  
JavaScript
    
      const element = document.querySelector('div');
      element.innerHTML = '';
    
  

4. Rimozione di tutti gli elementi figli

Per rimuovere tutti gli elementi figli si può usare un ciclo o il metodo innerHTML.

Esempio con ciclo:

HTML
    
      <html>
        <head>
          <title>Document</title>
        </head>
          <style>
            div {
              min-height: 200px;
              background: bisque;
            }
          </style>
        <body>
          <div>
            Questo è un elemento div
            <p>Questo è un paragrafo</p>
            <p>Questo è un paragrafo</p>
            <p>Questo è un paragrafo</p>
          </div>
        </body>
      </html>
    
  
JavaScript
    
      const parent = document.querySelector('div');
      while (parent.firstChild) {
        parent.removeChild(parent.firstChild);
      }
    
  

Esempio con innerHTML:

HTML
    
      <html>
        <head>
          <title>Document</title>
            <style>
              div {
                min-height: 200px;
                background: bisque;
              }
            </style>
        </head>
        <body>
          <div>
            Questo è un elemento div
            <p>Questo è un paragrafo</p>
            <p>Questo è un paragrafo</p>
            <p>Questo è un paragrafo</p>
            <ul>
              <li>Elemento 1</li>
              <li>Elemento 2</li>
              <li>Elemento 3</li>
            </ul>
          </div>
        </body>
      </html>
    
  
JavaScript
    
      const parent = document.querySelector('div');
      parent.innerHTML = '';
    
  
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION