Il metodo html()
può essere usato per leggere e scrivere il contenuto HTML di un elemento. Vediamolo in dettaglio.
Sintassi di base
Lettura
$(elemento).html()
Scrittura
$(elemento).html(stringa)
$(elemento).html(function(indice, html))
In scrittura questo metodo accetta una funzione di callback con due parametri: indice
rappresenta l'indice numerico dell'elemento all'interno del set di jQuery, mentre html
il suo contenuto HTML da modificare.
La stringa HTML passata in scrittura dovrebbe sempre contenere marcatura ben formata:
$('div.demo-container')
.html('<p>All new content. <em>You bet!</em></p>');
Il codice di cui sopra crea la seguente struttura:
<div class="demo-container">
<p>All new content. <em>You bet!</em></p>
</div>
Ecco invece un esempio con la funzione di callback:
$('div.demo-container').html(function() {
var emph = '<em>' + $('p').length + ' paragraphs!</em>';
return '<p>All new content for ' + emph + '</p>';
});
che può restituire:
<div class="demo-container">
<p>All new content for <em>6 paragraphs!</em></p>.
</div>
Nota su Internet Explorer 8 e 9
Queste versioni di Explorer hanno dei problemi quando si sovrascrive il contenuto HTML di un elemento usando il metodo html()
. La documentazione ufficiale raccomanda questo approccio:
$(elemento).empty().html(stringa);