logo Dove iniziare Linguaggi Aiuto Blog
Home Dove iniziare Linguaggi Aiuto e Supporto Info e Blog

Recuperare il contenuto degli elementi

La scorsa volta abbiamo visto come selezionare un elemento all'interno della pagina HTML con jQuery. Ma com'è possibile recuperare il contenuto di un elemento? Lo vediamo in questa lezione.

I metodi .text() e .html()

Per recuperare il contenuto di un elemento HTML, si possono utilizzare due metodi differenti: .text() e .html(). Vediamo a cosa servono:

  • $(elemento).text() recupera il contenuto di testo dell'elemento.
  • $(elemento).html() recupera il codice HTML e il contenuto dell'elemento.

Vediamoli in dettagli.

Il metodo .text()

Il metodo .text() recupera il contenuto testuale dell'elemento selezionato. Vediamo un esempio:

<p id="elemento">Questo testo è un esempio</p>

<script>
  var testo = $("#elemento").text();
  alert(testo);  // "Questo testo è un esempio"
</script>

Nella variabile testo verrà salvato il contenuto di testo dell'elemento <p> e viene visualizzato utilizzando il popup di alert (non lo conosci? Leggi la lezione JavaScript dedicata).

Il metodo .html()

Il metodo .html() recupera invece il contenuto HTML di un elemento, quindi anche i tag HTML insieme al testo. Ecco un esempio con questo metodo jQuery:

<p id="elemento">Questo <i>testo</i> è un <b>esempio</b></p>

<script>
  var testo = $("#elemento").html();
  alert(testo);  // "Questo <i>testo</i> è un <b>esempio</b>"
</script>

In questo caso, viene salvato nella variabile testo sia il contenuto testuale dell'elemento, sia i tag HTML (nell'esempio, <i> e <b>).

Esempio di .text() e .html()

Vediamo un esempio di .text() e .html() in una pagina HTML con jQuery.

<!DOCTYPE html>
<html>
<head>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
  <script>
    $(document).ready(function() {
      $("#visualizzaContenuto").click(function() {
        // Recupera il testo e l'HTML all'interno dell'elemento con id "contenitore"
        var testo = $("#contenitore").text();
        var html = $("#contenitore").html();
        // In questo caso, li stamperemo in un alert
        alert("Testo:\n" + testo + "\n\nHTML:\n" + html);
      });
    });
  </script>
</head>
<body>
  <div id="contenitore">
    <p>Questo è un testo davvero interessante.</p>
  </div>
  <button id="visualizzaContenuto">Clicca qui</button>
</body>
</html>

Ecco come funziona questo esempio:

  • Inseriamo un pulsante con l'ID "visualizzaContenuto". Questo sarà il pulsante che l'utente cliccherà per attivare lo script jQuery. 
  • La funzione $(document).ready() assicura che il codice venga eseguito solo dopo che il documento HTML è stato completamente caricato (l'abbiamo visto in questa lezione).
  • Il metodo .click() di jQuery è utilizzato per creare una funzione che verrà eseguita quando l'utente clicca sul pulsante con l'ID "visualizzaContenuto". Vedremo in dettaglio gli eventi jQuery nella lezione degli eventi del mouse.
  • All'interno della funzione di gestione del click, utilizziamo i metodi .text() e .html() di jQuery per recuperare il testo e l'HTML dall'elemento con l'ID "contenitore".
  • Viene visualizzato il testo e l'HTML di "contenitore" nell'alert. Utilizziamo \n per andare a capo.

Il metodo .val()

Il metodo .val() permette di recuperare i valori degli input dei form HTML. Ad esempio, si può recuperare il valore di una casella di testo inserita da un utente. 

Vediamo un esempio:

<input type="text" id="input"><br>
<button>Recupera valore</button><br>
<span></span>
  
<script>
  $("button").on("click", function() {
    var input = $("#input").val();
    $("span").text("Hai inserito: "+input);
  });
</script>

Nell'esempio, con un evento di click (che vedremo più avanti nella lezione degli eventi del mouse), quando l'utente clicca sul pulsante "Recupera valore", il valore dell'input viene salvato nella variabile input e inserito in <span> tramite .text() (che vedremo nella lezione su come cambiare il contenuto degli elementi).

Prova!Scegli l'opzione corretta tra quelle elencate.
<p id="ex">Roma è la <b>capitale d'Italia</b></p>

$("#ex").____();  // "Roma è la capitale d'Italia"

Prova!Completa gli spazi vuoti con il testo appropriato.
<input type="text" id="nome">

// Recupera il contenuto dell'input
var valore = $("#").();