如何偵測到jQuery的Selector選到了Null?
jQuery的selector極度的強大,但是當你在做複雜的語法查詢時,有很多時刻都會誤踩地雷。舉例來說,你隨便下個alert($("#NonExistDIV"));指令,儘管你的網頁中根本沒有這個DIV id,但是alert還是會彈出一個「[object Object]」的空集合jQuery物件,除非你再繼續下「$("#NonExistDIV")[0]」或「$("#NonExistDIV").get(0)」進行接續的求證,不然現階段你是沒有方法得知是不是有真正的select到DOM元素的。
今天就是因為一直覺得自己有正確的選到DOM元素,小鬼打牆了一段時間,一怒之下上網找了解決方案,解決的辦法很簡單,只要使用下列判斷式即可。
if ($("#NonExistDIV").length !== 0)
{ alert("有找到DOM元素"); }
else
{ alert("沒找到DOM元素"); }
與其在那邊罵jQuery為何不把它實作成一個方法的話,或許你可以選擇自己寫一個小外掛套件。
//判斷是否selector有選到DOM元素Plug-in
$.fn.exists = function() {
return this.length !== 0;
}
//實現方法
alert($("#NonExistDIV").exists()); //傳回false
alert($("#ExistDIV").exists()); //傳回true