2012-09-18 73 views
2

從DOC:jQuery的:選擇器解析機制

$(selector, context)內部實現的方法.find()

但是當我們寫一些選擇器像;

$('#a .b .c')

$('#a > .b > .c')

這是否實施.find()方法?或其他的機制jQuery用於此。

請讓我清楚這個解析機制。

回答

5

現代實現將把選擇器交給document.querySelectorAll(),瀏覽器將嘗試將其解析爲CSS選擇器(假設它是有效的)。

做不到這一點,jQuery的退回到了自己的選擇器引擎,Sizzle,它使用內部方法和計算遍歷DOM實現後裔以及兄弟選擇,其中最有可能使用方法如.find()爲當會招致不必要的開銷。

+0

謝謝先生,這意味着它並不總是使用'find()'方法,對吧? –