Quando lavoriamo con il DOM ricordiamoci la buona abitudine di verificare che che il nostro browser supporti il DOM di livello 1. Il modo tradizionale per farlo è rilevare la presenza del metodo document.getElementById(), definito dal W3C. Usiamo questo breve codice:
<script type="text/javascript">
function domw3c() {
if(document.getElementById) {
// il browser supporta il DOM di livello 1 del W3C
alert(":) DOM Supportato!");
}
else {
// il browser NON supporta il DOM di livello 1 del W3C
alert(":( DOM NON Supportato!");
}
}
</script>
In realtà, questa prova non garantisce che il browser supporti completamente tutte le specifiche, ma verifica semplicemente che la feature in questione sia presente. Ad esempio, Opera 5 superava la prova, ma non eseguiva tutti i codici validi per il W3C, poiché il supporto di Op5 dell standard era solo parziale.
Per non imbattersi in questo tipo di errori è bene fare una rilevazione d'oggetto mirata di volta in volta alle nostre esigenze.
Prima di entrare nella descrizione dei principali metodi e proprietà del DOM, occorre specificare con più accuratezza la differenza tra element e node.
Differenza tra element e node
Un elemento (element) è contraddistinto da un tag, qualunque esso sia. è facile quindi capire che può contenere altri elementi, si pensi al tag <table>
, che può contenere le righe e le celle della tabella stessa, e a loro volta questi possono contenere altri elementi.
Il nodo (node) ha un significato semantico più ampio: oltre ad includere nella sua definizione tutti gli elementi, un nodo può essere anhe un testo, o un attributo, che a differenza di tutti gli altri nodi non possono avere attributi e non possono contenere altri nodi.
Chiarito questo punto possiamo addentrarci nei dettagli del DOM percorrendo i metodi, le proprietà, e le caratteristiche dei mattoni costituenti del DOM stesso: document (l'elemento principale), element e node.