Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 5 di 30
  • livello principiante
Indice lezioni

modifiche agli oggetti dell'interfaccia DOM

L'intefaccia DOM si comporta come un linguaggio di programmazione ad oggetti
L'intefaccia DOM si comporta come un linguaggio di programmazione ad oggetti
Link copiato negli appunti

Come abbiamo in parte anticipato lo standard DOM permette anche di modificare l'albero XML. Abbiamo riservato a queste istruzioni un paragrafo separato perché per poterle usare occorre conoscere due facili ma importanti regole sul comportamento del DOM:

  • le azioni di cancellazione o copia possono essere operate direttamente sugli oggetti desiderati.
  • l'azione di creazione di un nuovo nodo è operata solo tramite metodi dell'oggetto Document. In poche parole, un nuovo nodo può essere generato sempre e solo dalla radice dell'albero. Appena creato il nuovo nodo esiste ma non ha una posizione nell'albero. Per questo il nodo va "installato", con appositi metodi, nel nodo padre scelto.

Con queste premesse vediamo ora le istruzioni. Partiamo questa volta dalla classe Document per vedere subito come si crea un nuovo nodo.

  • Metodi della classe Document:
    - createElement(nome): crea un elemento col nome dato.
    - createAttribute(nome): crea un attributo col nome dato.
    - createTextNode(stringa): crea un nodo di testo contenente la stringa data.
  • Metodi della classe Node: gli oggetti maneggiati da questi metodi possono essere nuovi nodi appena creati e non ancora posizionati oppure nodi già presenti. Se le operazioni hanno esito positivo, i metodi restituiscono l'oggetto appena movimentato:
    - appendChild(nodo): aggiunge un nodo ai figli; se il nodo era già presente in un'altra posizione viene prima rimosso.
    - removeChild(nome nodo): elimina un nodo figlio, restituisce il nome del nodo rimosso.
    - replaceChild(nome nodo 1, nodo 2): sostituisce il figlio nodo 1 con il nodo 2. Se il nodo era già presente in un'altra posizione viene prima rimosso.
    - insertBefore(nodo 1, nome nodo 2): inserisce il nodo 1 prima del figlio nodo 2. Se il 2 non è indicato l'operazione è identica a .appenChild. Se il nodo era già presente in un'altra posizione viene prima rimosso.
    - cloneNode(true/false): copia il nodo e tutto il sottoalbero (true), oppure il nodo solo con gli attributi (false), ma non il testo (che è un nodo figlio).

Restituisce il nodo senza posizione, come se fosse stato creato.

  • Metodi della classe Element: riguardano tutti gli attributi. Ricordiamo che anche se gli attributi non vengono trattati ufficialmente come figli, sono comunque dei nodi sottostanti al loro elemento.
    Perciò va considerata la differenza fra "nodo" attributo e valore dell'attributo stesso.
    - setAttribute(nome): imposta il valore dell'attributo indicato, che deve essere già esistente.
    - removeAttribute(nome): resetta il valore dell'attributo.
    - setAttributeNode(nodo attributo): aggiunge un attributo a quelli del nodo. Se viene rimpiazzato un attributo esistente il metodo restituisce tale attributo, altrimenti il valore null.
    - removeAttributeNode: rimuove l'attributo ed il suo contenuto.
  • Metodi della classe CharacterData:
    - appenData(stringa): aggiunge la stringa data a quella nel nodo testo. Non restituisce alcun valore.
    - insertdata(stringa, posizione): inserisce la stringa data della posizione indicata. Il contatore delle posizioni inizia da 0 e non da 1.
    - deleteData(posizione, lunghezza): elimina un certo numero di caratteri dopo la posizione indicata.
    - replaceData(posizione, lunghezza, stringa): sostituisce il segmento indicato da posizione e lunghezza con la stringa data.
  • Metodi della classe NodeNamedMap:
    - setNamedItem(nome): aggiunge al vettore un nodo col nome dato.
    - removeNamedItem(nome): elimina dal vettore il nodo dato.

Ti consigliamo anche