L’oggetto “document”

Quando si deve operare con Javascript su un elemento di una pagina HTML, la prima cosa da fare è o recuperare l’elemento (se già esiste) o crearlo. Ciò può essere fatto utilizzando l’oggetto document. Nella gerarchia del DOM (vedi link) l’oggetto document è l’oggetto “più importante” in quanto permette di raggiungere tutti gli altri elementi del DOM. Pertanto tra i metodi principali di questo oggetto ci sono quelli che permettono di:

  1. Recuperare gli elementi della pagina.
  2. Creare nuovi elementi.

Un elemento della pagina HTML può essere recuperato in vari modi, tramite:

  1. l’attributo ‘id’
  2. il nome del tag
  3. il nome di una classe CSS
  4. il selettore CSS
  5. le collezione degli oggetti HTML

In particolare il recupero di un elemento tramite l’id è possibile farlo solo tramite l’oggetto document che è l’unico a mettere a disposizione il metodo getElementById(). Gli altri modi elencati, invece, sono disponibili anche a partire da un oggetto di un qualunque elemento HTML. Per approfondimenti su quali sono tutti gli attributi e i metodi dell’oggetto document si rimanda al seguente: link.

NOTA – In questo articolo vedremo solo il primo metodo di recupero di un elemento della pagina, le altre modalità invece verranno trattate in un altro articolo a cui si rimanda (link).

Recuperare un elemento tramite l’id

Il metodo più pratico per recuperare uno specifico elemento della pagina HTML è tramite il suo id:

Il metodo getElementById() dell’oggetto document permette di recuperare un elemento HTML della pagina a partire dal valore del suo attributo id, che il metodo richiede come parametro sotto forma di stringa. Il metodo restituisce un riferimento all’oggetto dell’elemento richiesto. Vediamo un semplice esempio.

Nell’esempio di sopra durante il caricamento della pagina, viene recuperato l’elemento <p> con id=”da_cambiare” e il suo contenuto viene modificato assegnando la stringa “Nuovo testo del paragrafo” all’attributo innerHTML dell’elemento recuperato.

NOTA – L’attributo innerHTML di un elemento HTML permette di recuperare e modificare il suo contenuto.

L’esempio precedente può essere riscritto anche in maniera più compatta, richiamando l’attributo innerHTML direttamente dopo il metodo getElementById() nel modo seguente:

Creare un elemento

Per creare un nuovo elemento in una pagina HTML,  l’oggetto document mette a disposizione due metodi: createElement() e createTextNode().

  • Il metodo createElement() permette di creare un elemento di un tag di qualunque tipo, passato al metodo sotto forma di stringa; esso restituisce un riferimento all’oggetto dell’elemento creato. Sintassi:
  • Il metodo createTextNode() serve per creare elementi di testo della pagina, che si ricorda sono dei nodi atipici del DOM perché non corrispondono ad alcun tag HTML e che hanno la particolarità di non poter includere altri elementi o altri attributi (foglie dell’albero). Sintassi:

Esso richiede come parametro la stringa del testo da inserire nel nuovo nodo e restituisce un riferimento al nodo di testo creato.

Esempio.

Il codice precedente produce la seguente pagina, che dà la possibilità di aggiungere un nuovo item in coda alla lista, digitando il testo della nuova voce nella casella di testo e cliccando il bottone.

DOM-03

Il codice è commentato ed è autoesplicativo (la sintassi è quella tipica dei linguaggi OOP). Si fa notare solo che i nuovi nodi, dopo che vengono creati, affinché effettivamente diventino degli elementi della pagina, devono essere aggiunti al nodo dell’elemento di appartenenza richiamando il metodo appendChild(). Per approfondimenti su questo e sugli altri metodi degli elementi del DOM HTML si rimanda al seguente: link.

Per capire “il grado di parentela” tra i nodi della gerarchia del DOM, infine, può essere utile la seguente figura (fonte: html.it):

DOM-04