Java程式員的JavaScript學習筆記(8——jQuery選取器)
計劃按如下順序完成這篇筆記:
1. 理念。
2. 屬性複製和繼承。
3. this/call/apply。
4. 閉包/getter/setter。
5. prototype。
6. 物件導向類比。
7. jQuery基本機制。
8. jQuery選取器。
9. jQuery工具方法。
10. jQuery-在“類”層面擴充。
11. jQuery-在“對象”層面擴充。
12. jQuery-延伸選取器。
13. jQuery UI。
14. 擴充jQuery UI。
這是筆記的第8篇,聊聊jQuery的選取器。
最近工作上的事情很忙,有幾天沒有更新筆記了。
終於今天又抽空能安靜下來寫點東西。
爪機離線,全憑記憶,今天的筆記沒有代碼了。
好在對jQuery選取器,大家熟練使用即可,理解其原理的必要性不是特別大,除非自己需要實作類別似的功能,或者需要擴充jQuery的選取器。
Topic 1:選取器的四種類型
其實是傳入$()函數的四種參數類型,分別是:
* Dom對象,識別方法是有nodeType屬性。
* 字串:字串的話分兩種情況,有可能是css選取器運算式,有幾個Regex匹配;也有可能是個html字串。
* 數組,這個,是不是只有jQuery自己clone,pushStack時這樣用?
* 函數,即常用的$(function(){ /* my code here */ })。
Topic 2:jQuery是怎樣儲存尋找到的對象的?
用 this[0],this[1]這種方式,可以理解為內部的儲存結構是數組。
Topic 3:find方法是如何?的?
在看源碼之前,我也覺得這個好神奇,瀏覽器應該只給提供了document.getElementById/Name/Tag之類的。一直猜測jQuery和瀏覽器廠商有一腿,回頭一想,不太可能,不可能跟每個瀏覽器廠商都有一腿。
看源碼後,發現:真的就是在document.getElementById/Name/Tag基礎上配合合理的演算法實現的。
“傻”辦法不傻,其他人還在猶豫行不行的時候,人家已經做出來了。
大致分兩步,先定位,縮小範圍;然後過濾。
好了,今天就到這裡吧。