Sizzle 官方API翻译
Sizzle源碼解析[原創(chuàng)內(nèi)容,歡迎轉(zhuǎn)載,如有錯(cuò)誤,概不負(fù)責(zé)~~]
Sizzle官方文檔上說,Sizzle Api由三個(gè)部分構(gòu)成。
- Public API - 用戶使用
- Extension API - 用于修改定制選擇器引擎
- Internal API - 引擎內(nèi)部使用
下面分別列舉一下各部份的API
- Public API
Sizzle(String selector[, DOMNode context[, Array results]])
- 查找elements的主函數(shù),如果瀏覽器支持querySelectorAll的話,就會調(diào)用該函數(shù)。
- 返回值(Array) - 選擇器找到的所有的元素
- 參數(shù)說明:
- selector - 一個(gè) css 選擇器
- context - 一個(gè)元素、文檔或文檔碎片作為上下文,用來查找元素。
- results - 一個(gè)Array對象或者類Array對象。用于添加Sizzle選擇的結(jié)果。這里定義了Jquery中“array-like object”:
- 有一個(gè)正數(shù)的length屬性。
- 有一個(gè)push方法。
Sizzle.matchesSelector(DOMElement element, String selector)
- 如果指定的element,能通過selector找到,則返回true,否則返回false。如果瀏覽器支持原生的Elements.matchesSelector,
就使用原生的。
- 返回值(Boolean)
- 參數(shù)說明:
- element - 需要測試的element
- selector - 一個(gè)css選擇器
- 如果指定的element,能通過selector找到,則返回true,否則返回false。如果瀏覽器支持原生的Elements.matchesSelector,
Sizzle.matches(String selector, Array<DOMElement> elements)
- 從指定的結(jié)果集中篩選出與selector匹配的結(jié)果并返回。
- 返回值(Array)
- 參數(shù)說明:
- selector - css selector
- elements - DOMElement數(shù)組
- Extension API
Sizzle.selectors.match.NAME = RegExp
This contains the regular expressions used to parse a selector into different parts,
to be used for finding and filtering. The name of each of the regular expressions
should correspond to the names specified in the Sizzle.selectors.find
and Sizzle.selectors.filter objects.該屬性包含的正規(guī)表達(dá)式用于將一個(gè)selector解析成不同的部份,用于查找和過濾。每一個(gè)正則表達(dá)式的名字
都應(yīng)對于Sizzle.selectors.find和Sizzle.selectors.filter對象中指定的名稱。Finding
如果要新增一個(gè)find函數(shù):
- 正則表達(dá)式必須添加到match對象上。
- 必須定義一個(gè)find函數(shù)
- "|" + NAME必須附加到Sizzle.selectors.order
Sizzle.selectors.find.NAME = function(match, context, isXML) {}
A method for finding some elements on a page.
The specified function will be called no more than once per selector.該方法用于在一個(gè)page上查找一些elements.單個(gè)selector調(diào)用指定的函數(shù)的次數(shù)不會超過一次。
參數(shù)說明:- match 是一個(gè)查找指定的selector返回的結(jié)果集
- context 是一個(gè)DOMElement或DOMDocument,指定將要進(jìn)行選擇的上下文
isXML 是一個(gè)Boolean值。表明函數(shù)當(dāng)前操作的是否是一個(gè)XML文檔
Filtering
定義一個(gè)新的過濾表達(dá)式:
- 正則表達(dá)式必須添加到match對象上
- 過濾函數(shù)必須添加到filter對象上
可以選擇在preFilter對象上定義一個(gè)函數(shù)
Extension API 先翻譯到這里。我自己都云里霧里不知道這些做什么用。看了源碼之后回頭再看這些。
Internal API
功能性的操作應(yīng)該通過訪問Public 和 Extension API. Internal API 只是給內(nèi)部調(diào)用。
已經(jīng)暴露給edge cases[邊緣案例](http://en.wikipedia.org/wiki/Edge_case)Sizzle.selectors.cacheLength
Sizzle內(nèi)部用于緩存編譯過的selector函數(shù)和token對象。長度默認(rèn)50,可以設(shè)置為任意正整數(shù)。
Sizzle.compile(selector)
該方法用于解析selector函數(shù),并緩存下來,用于后面調(diào)用。返回一個(gè)函數(shù)。
轉(zhuǎn)載于:https://www.cnblogs.com/CoinXu/p/4568477.html
總結(jié)
以上是生活随笔為你收集整理的Sizzle 官方API翻译的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 开博拉~~~庆祝一下,哈~~~
- 下一篇: Dynamics CRM2015 2