这是一个非常普遍的问题 是:
$el.siblings(".class");
比
更好的做法$("#id")
在以前使用$ el时访问元素,因此已存储在变量中?
由于以下几个原因,我对此有点不确定:
在这个问题之后,我想知道jQuery在缓存选择器时如何继续引用内部DOM节点(例如$el = $("#el");
)。虽然我知道语法,但我不确定引擎盖下会发生什么(即如何在JS中编写引用程序)。
对此有任何正式确认?
答案 0 :(得分:0)
在幕后,jQuery只引用了DOM元素。每次你这样做:
$("#el")
jQuery必须解析选择器以确定它正在寻找ID,然后调用document.getElementById("el")
。它将结果保存在jQuery对象中。如果你这样做:
$el = $("#el");
然后从那时起使用$el
,它不需要进行任何解析,也不必调用getElementById()
来查找元素。所有jQuery方法都可以简单地使用包含已保存DOM元素的实例变量。