簡體   English   中英

緩存選擇器如何在后台運行

[英]How does caching selectors work under the hood

這是一個非常普遍的問題。
方法是:

$el.siblings(".class"); 

更好的實踐比

$("#id") 

$ el之前已經使用過,因此已經存儲在變量中時,如何訪問元素?

由於某些原因,我對此不太確定:

  • id顯然非常快;
  • 我不完全確定在緩存原始元素時是否需要遍歷DOM以獲取同級元素。

跟隨這個問題,我想知道當緩存選擇器時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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM