2013-03-26 20 views
5

Vorrei verificare se un particolare attributo di un elemento DOM non è definito - come faccio?Come posso verificare se un elemento non è definito?

Ho provato qualcosa di simile:

if (marcamillion == undefined) { 
    console.log("Marcamillion is an undefined variable."); 
} 
ReferenceError: marcamillion is not defined 

Come si può vedere, l'errore di riferimento mi sta dicendo che la variabile non è definita, ma il mio assegno if chiaramente non funziona, perché sta producendo lo standard js ReferenceError in contrasto con il messaggio di errore che sto cercando nel mio console.log.

Modifica 1

O meglio ancora, se sto cercando di determinare se l'attributo di un elemento non è definito in questo modo:

$(this).attr('value')

Quale sarebbe il modo migliore per determinare se questo non è definito?

+1

possibile duplicato di [Come determinare se la variabile è 'indefinita' o 'nulla'] (http://stackoverflow.com/questions/2647867/how-to-determine-if-variable-is-undefined-or- null) e http://stackoverflow.com/questions/27509/detecting-an-undefined-object-property-in-javascript – lifetimes

risposta

8

Utilizzando typeof:

if (typeof marcamillion == 'undefined') { 
    console.log("Marcamillion is an undefined variable."); 
} 

Modifica per la seconda domanda:

if ($(this).attr('value')) { 
    // code 
} 
else { 
    console.log('nope.') 
} 
+0

Dire che ho un attributo che sto cercando di testare il valore di - ie '$ (this) .attr ('value') '... quale sarebbe il modo migliore per determinare se non è definito? – marcamillion

+1

Semplicemente facendo 'if ($ (this) .attr ('valore'))' funzionerà. – romainberger

+0

Perfetto. Grazie! – marcamillion

4
if (typeof marcamillion === 'undefined') { 
    console.log("Marcamillion is an undefined variable."); 
} 

noti che usare === invece di == è considerato lo stile migliore.

+0

Dire che ho un attributo che sto cercando di testare il valore di - i.e. '$ (this) .attr ('value')' ... quale sarebbe il modo migliore per determinare se non è definito? – marcamillion

Problemi correlati