JQuery_2.1.0_日記 5.8 Sizzle選擇器(四)

Sizzle( selector, context, results, seed )的關鍵步驟
1,傳入的context對應的context和當前document是否一致,不一致調用setDocument()重新設置document,用於frame的情況.
2,如果context爲空修正context爲document
3,selector如果不是字符串或者context不是Element或Document直接返回空數組.
4,如果文檔是HTML並且未傳入過濾結果集seed,嘗試用原生方法getElementById、getElementsByTagName、getElementsByClassName、querySelectorAll方法查找元素
5,其他情況,調用select(selector, context, results, seed)方法查找元素

這裏要詳細分解的是setDocument()方法,它很長,他設置當前document和當前document對應的變量和方法它主要做了以下事情
1,設置當前代碼運行環境的document(此document非彼document,它是一個普通的變量,它引用當前窗口的document).
2,處理getElementById、getElementsByTagName、getElementsByClassName不同遊覽器的差異,爲不同遊覽器設置Expr.find['ID']、
Expr.filter['ID']表現統一的方法
3,設置當前document的QSA的怪異表現
4,設置當前document的排序方法
5,返回當前document
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章