1
我想知道jquery是如何真正在內部工作的。例如,我想知道jquery選擇器如何在引擎蓋下工作?它是否遍歷所有的DOM元素?或者它有另一種尋找元素的神奇算法?JQuery如何選擇引擎蓋下的元素?
它與.find()和.filter()函數有什麼不同?
你們有什麼想法嗎?
我想知道jquery是如何真正在內部工作的。例如,我想知道jquery選擇器如何在引擎蓋下工作?它是否遍歷所有的DOM元素?或者它有另一種尋找元素的神奇算法?JQuery如何選擇引擎蓋下的元素?
它與.find()和.filter()函數有什麼不同?
你們有什麼想法嗎?
當瀏覽器需要從元素應用樣式規則時,jQuery使用幾乎相同的原則 - 掃描所有元素並檢查CSS中聲明的所有規則。
也是如此的jQuery:
for each element in given subtree/input set do
if element matches selector do
add element to output set
end if
end for
return output set
所以任務已計算的複雜性O(N)
其中N是一個數字輸入DOM元素設置的。
有很多技巧/優化可能,但一般來說 它是如此複雜。
一些jQuery選擇有更糟糕的複雜性,例如該 $("li:has(ul)")
選擇具有計算的O(N*N)
複雜所以要謹慎使用。
使用它可以使瀏覽jquery的源代碼變得更加簡單:http://james.padolsey.com/jquery/ – techfoobar
使用源代碼https://github.com/jquery/jquery – Saravana
關於.find()和.filter() :http://stackoverflow.com/questions/2438223/jquery-confusion-in-figuring-out-the-difference-between-find-and-filter –