问题描述
这是一个非常普遍的问题。
方法是:
$el.siblings(".class");
更好的实践比
$("#id")
$ el之前已经使用过,因此已经存储在变量中时,如何访问元素?
由于某些原因,我对此不太确定:
- id显然非常快;
- 我不完全确定在缓存原始元素时是否需要遍历DOM以获取同级元素。
跟随这个问题,我想知道当缓存选择器时jQuery如何保持对内部DOM节点的引用(例如$el = $("#el"); )。
尽管我知道语法,但是我不确定幕后到底会发生什么(即,如何在JS中对引用进行编程)。
对此有任何正式确认吗?
1楼
Barmar
0
已采纳
2015-07-30 20:52:24
在幕后,jQuery仅引用了DOM元素。 每次您这样做:
$("#el")
jQuery必须解析选择器以确定它正在寻找ID,然后调用document.getElementById("el") 。
它将结果保存在jQuery对象中。
如果您这样做:
$el = $("#el");
然后从那时起使用$el ,它不必进行任何解析,也不必调用getElementById()来查找元素。
所有jQuery方法都可以简单地使用包含已保存的DOM元素的实例变量。