Ottenere il valore dell’elemento DOM usando puro JavaScript

C’è qualche differenza tra queste soluzioni?

Soluzione 1:

// HTML:  // JavaScript: function doSomething (id, value) { // ... } 

… e soluzione 2:

 // HTML:  // JavaScript: function doSomething(id){ var value = document.getElementById(id).value; // ... } 

, in particolare! Non penso che il secondo funzionerà (e se lo fa, non è molto portabile ). Il primo dovrebbe essere OK.

 // HTML:  // JavaScript: function(elem){ var value = elem.value; var id = elem.id; ... } 

Questo dovrebbe funzionare anche

La seconda funzione dovrebbe avere:

 var value = document.getElementById(id).value; 

Quindi sono fondamentalmente la stessa funzione.

Nella seconda versione, stai passando la stringa restituita da this.id Non l’elemento stesso.

Quindi id.value non ti darà quello che vuoi.

Dovresti passare l’elemento con this .

 doSomething(this) 

poi:

 function(el){ var value = el.value; ... } 

Nota: in alcuni browser, il secondo funzionerebbe se lo facessi:

 window[id].value 

perché gli ID elemento sono una proprietà globale, ma non è sicuro .

Ha più senso passare semplicemente l’elemento con this invece di recuperarlo di nuovo con il suo ID.

Passa l’object:

 doSomething(this) 

Puoi ottenere tutti i dati dall’object:

 function(obj){ var value = obj.value; var id = obj.id; } 

Oppure passa solo l’ id :

 doSomething(this.id) 

Prendi l’object e dopo quel valore:

 function(id){ var value = document.getElementById(id).value; }