今天(周六)下午我在公司加班時不知道要干什么,就打開公司的一個wordpress項目網(wǎng)站,想看下之前自己做的一個網(wǎng)頁是否有問題。

打開網(wǎng)站首頁,我習(xí)慣性的打開了chrome的調(diào)試工具,然后鼠標(biāo)開始滾動頁面,然后問題就出來了:頁面無法向下滾動,調(diào)試工具的console里報了好多undefined的錯誤。

我馬上意識到是我寫的js代碼錯誤的在首頁被執(zhí)行導(dǎo)致的問題,我的代碼大致是這樣:

 View Code

這段代碼的想要做的就是,判斷下頁面是否有某個id標(biāo)識的元素,如果有就做一些事情。網(wǎng)站首頁是應(yīng)該沒有這個元素的,不應(yīng)該執(zhí)行這個代碼。

好吧,如果你看到這里,你肯定能猜到我不是做前端的。我期望它返回一個布爾類型的false,但它實際上返回的是一個jQuery Object,

注意這里獲得的不是dom element,如果想獲得真實的dom element,可以這么寫$('#a')[0]或者$('#a').get(0)

其實$('selector')返回的永遠(yuǎn)都是一個jQuery Object,不管它找沒找到元素。(關(guān)于這個返回值的問題請參考:What does jquery $ actually return? 和 How to get a DOM Element from a JQuery Selector)。

那么我該如何判斷id=a的元素是否存在呢?其實可以這么做,if ($('#a').length),如果沒有#a則返回的object其實是個空對象,可以達到目的。

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運,軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式