我有 id 为 #wrapper
的 div,所有元素都在其中。
我通过执行
var $wrapper = $('#wrapper');
现在,每当我想要创建选择器或引用元素时,我都会这样做
$wrapper.find('#whatever').click(....
通过这样做,我可以避免再次使用 jQuery 对象进行包装,因此我将来所做的任何选择器都将基于缓存的 $wrapper
。但另一方面,当我将 find()
与缓存的 $wrapper 一起使用时,我知道它将搜索 #wrapper
内的所有元素。我的问题是哪个更好,使用缓存变量和查找然后发出点击事件,或者只是简单地执行 $('#whatever').click(..
whatever
可以是类或 id。
最佳答案
如果你在 whateverID
是 ID
的地方使用它,那么 $('#whateverID').click(..
会给你一点点性能更好,但是如果 whateverCLASS
是类或 ID
以外的任何内容,$wrapper.find('whateverCLASS').click(....
会更好,因为遍历将仅限于作为整个 DOM 子集的特定容器
关于jQuery 缓存选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5845862/