今天(周六)下午我在公司加班時(shí)不知道要干什么,就打開公司的一個(gè)wordpress項(xiàng)目網(wǎng)站,想看下之前自己做的一個(gè)網(wǎng)頁是否有問題。
打開網(wǎng)站首頁,我習(xí)慣性的打開了chrome的調(diào)試工具,然后鼠標(biāo)開始滾動(dòng)頁面,然后問題就出來了:頁面無法向下滾動(dòng),調(diào)試工具的console里報(bào)了好多undefined的錯(cuò)誤。
我馬上意識(shí)到是我寫的js代碼錯(cuò)誤的在首頁被執(zhí)行導(dǎo)致的問題,我的代碼大致是這樣:
這段代碼的想要做的就是,判斷下頁面是否有某個(gè)id標(biāo)識(shí)的元素,如果有就做一些事情。網(wǎng)站首頁是應(yīng)該沒有這個(gè)元素的,不應(yīng)該執(zhí)行這個(gè)代碼。
好吧,如果你看到這里,你肯定能猜到我不是做前端的。我期望它返回一個(gè)布爾類型的false,但它實(shí)際上返回的是一個(gè)jQuery Object,
注意這里獲得的不是dom element,如果想獲得真實(shí)的dom element,可以這么寫$('#a')[0]或者$('#a').get(0)。
其實(shí)$('selector')返回的永遠(yuǎn)都是一個(gè)jQuery Object,不管它找沒找到元素。(關(guān)于這個(gè)返回值的問題請(qǐng)參考:What does jquery $ actually return? 和 How to get a DOM Element from a JQuery Selector)。
那么我該如何判斷id=a的元素是否存在呢?其實(shí)可以這么做,if ($('#a').length),如果沒有#a則返回的object其實(shí)是個(gè)空對(duì)象,可以達(dá)到目的。
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動(dòng)安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識(shí)別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動(dòng)安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26