[英]How does caching selectors work under the hood
這是一個非常普遍的問題。
方法是:
$el.siblings(".class");
更好的實踐比
$("#id")
$ el之前已經使用過,因此已經存儲在變量中時,如何訪問元素?
由於某些原因,我對此不太確定:
跟隨這個問題,我想知道當緩存選擇器時jQuery如何保持對內部DOM節點的引用(例如$el = $("#el");
)。 盡管我知道語法,但是我不確定幕后到底會發生什么(即,如何在JS中對引用進行編程)。
對此有任何正式確認嗎?
在幕后,jQuery僅引用了DOM元素。 每次您這樣做:
$("#el")
jQuery必須解析選擇器以確定它正在尋找ID,然后調用document.getElementById("el")
。 它將結果保存在jQuery對象中。 如果您這樣做:
$el = $("#el");
然后從那時起使用$el
,它不必進行任何解析,也不必調用getElementById()
來查找元素。 所有jQuery方法都可以簡單地使用包含已保存的DOM元素的實例變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.