2012-11-28 11 views
26

Ist dieser Code gut?jQuery/JavaScript-Code überprüfen, wenn nicht undefined

var wlocation = $(this).closest('.myclass').find('li a').attr('href'); 
if (wlocation.prop !== undefined) { window.location = wlocation; } 

oder soll ich tun

var wlocation = $(this).closest('.myclass').find('li a').attr('href'); 
if (wlocation.prop !== "undefined") { window.location = wlocation; } 

Antwort

65

Ich mag diese:

if (wlocation !== undefined) 

Aber wenn Sie die zweite Möglichkeit vorziehen wouldn‘ Sei wie du geschrieben hast. Es wäre:

if (typeof wlocation !== "undefined") 
+1

wlocation ist nur eine Zeichenfolge (der Wert des Attributs href) so hat es keine Stütze Eigenschaft ... – Bruno

+0

Danke, korrigiert! – Diego

+0

Vielen Dank Jungs. – Jeremy

2

Sie einfach verwenden:

var wlocation = $(this).closest('.myclass').find('li a').attr('href'); 
if (wlocation !== undefined) { window.location = wlocation; } 
10

Ich mag generell die Kurzversion:

if (!!wlocation) { window.location = wlocation; } 
+2

+1 Wirklich nett, ich kannte den Befehl '!!' nicht für 'nicht-undefiniert'. –

+1

@MichelAyres '!!' ist kein spezieller * Operator * oder "nicht undefiniert" ... es sind im Grunde zwei keine Operatoren hintereinander, zB; '!! undefined => nicht (nicht undefiniert) => nicht (richtig) => falsch ' – Christian

Verwandte Themen