2012-11-28 30 views
26

Mã này có tốt không?Kiểm tra mã jQuery/Javascript, nếu chưa được xác định

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

hay tôi nên làm

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

Trả lời

65

Tôi thích video này:

if (wlocation !== undefined) 

Nhưng nếu bạn thích cách thứ hai wouldn' t như bạn đã đăng. Nó sẽ là:

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

wlocation chỉ là một chuỗi (giá trị của thuộc tính href) vì vậy nó có không bất cứ tài sản prop ... – Bruno

+0

Cảm ơn, sửa chữa! – Diego

+0

Cảm ơn rất nhiều bạn. – Jeremy

2

bạn có thể sử dụng đơn giản:

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

Tôi thường thích các phiên bản tốc ký:

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

+1 Thật sự rất hay, tôi không biết lệnh '!!' cho 'not-undefined'. –

+1

@MichelAyres '!!' không phải là một toán tử * đặc biệt * hoặc "không được xác định" ... về cơ bản là hai toán tử không phải sau mỗi khác, ví dụ; '!! undefined => not (not undefined) => not (true) => false' – Christian

Các vấn đề liên quan