You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 2-ui/1-document/05-basic-dom-node-properties/article.md
+14-14Lines changed: 14 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,7 +10,7 @@ Nodi del DOM differenti possono avere proprietà differenti. Ad esempio, un nodo
10
10
11
11
Ogni nodo del DOM appartiene alla corrispondente classe nativa.
12
12
13
-
La classe base della gerarchia è [EventTarget](https://dom.spec.whatwg.org/#eventtarget), che è ereditata dalla classe [Node](http://dom.spec.whatwg.org/#interface-node)che, a sua volta, è ereditata dalle altre classi corrispondenti ai nodi del DOM.
13
+
La classe base della gerarchia è [EventTarget](https://dom.spec.whatwg.org/#eventtarget), che è ereditata dalla classe [Node](http://dom.spec.whatwg.org/#interface-node)da cui ereditano le altre classi corrispondenti ai nodi del DOM.
14
14
15
15
Qui lo schema, le spiegazioni a seguire:
16
16
@@ -19,7 +19,7 @@ Qui lo schema, le spiegazioni a seguire:
19
19
Le classi sono:
20
20
21
21
-[EventTarget](https://dom.spec.whatwg.org/#eventtarget) -- è la classe radice (root class) "astratta". Gli oggetti di questa classe non vengono mai creati. Serve solo come base, in questo modo tutti i nodi del DOM supportano i cosiddetti "eventi" che studieremo successivamente.
22
-
-[Node](http://dom.spec.whatwg.org/#interface-node) -- anche questa è una classe "astratta" che serve da base per i nodi del DOM. Fornisce le funzionalità principali della struttura gerarchica: `parentNode`, `nextSibling`, `childNodes` e così via (si tratta di getters). Dalla classe `Node` non vengono mai creati oggetti, tuttavia da questa ereditano classi corrispondenti a nodi concreti, nella fattispecie: `Text` per i nodi di testo, `Element` per i nodi elemento e quelli meno ricorrenti come `Comment` per i nodi commento.
22
+
-[Node](http://dom.spec.whatwg.org/#interface-node) -- anche questa è una classe "astratta" che serve da base per i nodi del DOM. Fornisce le funzionalità principali della struttura gerarchica: `parentNode`, `nextSibling`, `childNodes` e così via (si tratta di getter). Dalla classe `Node` non vengono mai creati oggetti, tuttavia da questa ereditano classi corrispondenti a nodi concreti, nella fattispecie: `Text` per i nodi di testo, `Element` per i nodi elemento e quelli meno ricorrenti come `Comment` per i nodi commento.
23
23
-[Element](http://dom.spec.whatwg.org/#interface-element) -- è la classe base per gli elementi del DOM. Fornisce le funzionalità di navigazione tra elementi come `nextElementSibling`, `children` ed i metodi di ricerca come `getElementsByTagName`, `querySelector`. Un browser non supporta solo HTML, ma anche XML e SVG. La classe `Element` serve da base per le classi più specifiche: `SVGElement`, `XMLElement` e `HTMLElement`.
24
24
-[HTMLElement](https://html.spec.whatwg.org/multipage/dom.html#htmlelement) -- è, infine, la classe base per tutti gli elementi HTML. Essa è ereditata da elementi HTML concreti:
25
25
-[HTMLInputElement](https://html.spec.whatwg.org/multipage/forms.html#htmlinputelement) -- la classe per gli elementi `<input>`,
@@ -35,19 +35,19 @@ Esso riceve proprietà e metodi per effetto della sovrapposizione di (elencate i
35
35
36
36
37
37
-`HTMLInputElement` -- questa classe fornisce le proprietà specifiche per un campo di testo,
38
-
-`HTMLElement` -- espone i metodi (e i getters/setters) comuni agli elementi HTML,
38
+
-`HTMLElement` -- espone i metodi (e i getter/setter) comuni agli elementi HTML,
39
39
-`Element` -- fornisce i metodi generici propri di un elemento,
40
40
-`Node` -- fornisce i metodi generici propri di un nodo DOM,
41
41
-`EventTarget` -- consente il supporto agli eventi (che tratteremo in seguito),
42
-
- ...e, infine, esso eredita da `Object`, quindi saranno disponibili anche i metodi della classe Object come `hasOwnProperty`.
42
+
- ...e, infine, esso eredita da `Object`, quindi saranno disponibili anche i metodi di un oggetto semplice come `hasOwnProperty`.
43
43
44
-
Per conoscere il nome della classe di un nodo DOM, ricordiamoci che un oggetto ha solitamente la proprietà `constructor`. Questa si riferisce al costruttore della classe e il suo nome è `constructor.name`:
44
+
Per conoscere il nome della classe di un nodo DOM, ricordiamoci che un oggetto ha solitamente la proprietà `constructor`. Questa contiene un riferimento al costruttore della classe e `constructor.name` indica il suo nome:
Come possiamo notare i nodi DOM sono regolari oggetti JavaScript ed usano classi basate sui prototipi per l'ereditarietà.
66
+
Come possiamo notare i nodi DOM sono oggetti JavaScript regolari ed usano classi basate sui prototipi per l'ereditarietà.
67
67
68
68
Questo è anche facile da osservare esaminando un elemento in un browser con `console.dir(elem)`. Nella console potremo vedere `HTMLElement.prototype`, `Element.prototype` e così via.
69
69
@@ -79,7 +79,7 @@ Provatelo con `document.body`.
79
79
```
80
80
81
81
````smart header="L'IDL della specifica"
82
-
Nella specifica, le classi DOM non sono descritte con JavaScript, ma con uno speciale [Interface description language](https://en.wikipedia.org/wiki/Interface_description_language) (IDL), che di solito è facile da capire.
82
+
Nella specifica, le classi DOM non sono descritte con JavaScript, ma con uno speciale [Interface description language](https://en.wikipedia.org/wiki/Interface_description_language) (IDL), che di solito è facile da comprendere.
83
83
84
84
Nell'IDL tutte le proprietà sono precedute dai rispettivi tipi. Per esempio `DOMString`, `boolean` e così via.
2. Il nuovo valore di `innerHTML` è inserito al suo posto (una concatenazione del vecchio e del nuovo).
262
+
2. Il nuovo valore di `innerHTML` (una concatenazione del vecchio e del nuovo) è inserito al suo posto.
263
263
264
264
**Poiché il contenuto viene "azzerato" e riscritto da zero, tutte le immagini e le altre risorse verranno ricaricate**.
265
265
@@ -318,7 +318,7 @@ Ricapitolando ciò che è successo in `div.outerHTML=...` è:
318
318
- Un pezzo di HTML differente `<p>A new element</p>` è stato inserito al suo posto.
319
319
- `div` mantiene ancora il suo valore precedente. L'HTML inserito in seguito non è stato memorizzato in alcuna variabile.
320
320
321
-
È molto semplice commettere un errore a questo punto: modificare `div.outerHTML` e procedere con `div` come se avesse recepito il nuovo contenuto. Ma questo non avviene. Tale convinzione è corretta per `innerHTML`, ma non per `outerHTML`.
321
+
È molto semplice commettere un errore a questo punto: modificare `div.outerHTML` e procedere con `div` come se avesse recepito il nuovo contenuto. Ma questo non avviene. Tale convinzione è corretta per `innerHTML`, ma non per `outerHTML`.
322
322
323
323
Possiamo scrivere tramite `elem.outerHTML`, ma dovremmo tenere bene presente che non cambia l'elemento ('elem') su cui stiamo scrivendo, sostituisce invece il nuovo HTML al suo posto. Per avere un riferimento valido al nuovo elemento dobbiamo interrogare nuovamente il DOM.
324
324
@@ -350,7 +350,7 @@ Ecco un esempio di lettura del contenuto di un nodo di testo e di un commento:
350
350
351
351
Per i nodi di testo possiamo ipotizzare un motivo per leggerne o modificarne il contenuto testuale, ma perché i commenti?
352
352
353
-
Talvolta gli sviluppatori incorporano informazioni o istruzioni sui template nei commenti all'interno dell'HTML, in questo modo:
353
+
Talvolta gli sviluppatori incorporano informazioni o istruzioni per i template nei commenti all'interno dell'HTML, in questo modo:
354
354
355
355
```html
356
356
<!-- if isAdmin -->
@@ -464,7 +464,7 @@ La maggior parte degli attributi HTML standard ha la corrispondente proprietà D
464
464
465
465
Se desideriamo conoscere la lista completa delle proprietà supportate per una classe precisa, le possiamo trovare nella specifica. Per esempio la classe `HTMLInputElement` è documentata su <https://html.spec.whatwg.org/#htmlinputelement>.
466
466
467
-
In alternativa, se vogliamo ricavarle rapidamente o siamo interessati ad una concreta implementazione del browser -- possiamo sempre effettuare un output dell'elemento con `console.dir(elem)` e leggerne le proprietà o, ancora, esplorare "Proprietà DOM" nel tab Elementi degli strumenti per sviluppatori del browser.
467
+
In alternativa, se vogliamo ricavarle rapidamente o siamo interessati ad una concreta implementazione del browser -- possiamo sempre esaminare l'elemento con `console.dir(elem)` e leggerne le proprietà o, ancora, esplorare le "Proprietà DOM" nel tab Elementi degli strumenti per sviluppatori del browser.
468
468
469
469
## Sommario
470
470
@@ -482,7 +482,7 @@ Le principali proprietà di un nodo DOM sono:
482
482
: Il contenuto HTML dell'elemento. Può essere modificato.
483
483
484
484
`outerHTML`
485
-
: L'HTML completo dell'elemento. Un'operazione di scrittura in `elem.outerHTML` non modifica `elem`, piuttosto viene sostituito nel documento con il nuovo HTML.
485
+
: L'HTML completo dell'elemento. Un'operazione di scrittura in `elem.outerHTML` non modifica `elem` ma viene sostituito nel documento con il nuovo HTML.
486
486
487
487
`nodeValue/data`
488
488
: Il contenuto dei nodi che non sono elementi (testi, commenti). Le due proprietà sono quasi del tutto equiparabili, solitamente usiamo `data`. Può essere modificata.
0 commit comments