jQuery 缓存选择器

标签 jquery caching selector

我有 id 为 #wrapper 的 div,所有元素都在其中。 我通过执行

来缓存包装器
var $wrapper = $('#wrapper');

现在,每当我想要创建选择器或引用元素时,我都会这样做

$wrapper.find('#whatever').click(....

通过这样做,我可以避免再次使用 jQuery 对象进行包装,因此我将来所做的任何选择器都将基于缓存的 $wrapper。但另一方面,当我将 find() 与缓存的 $wrapper 一起使用时,我知道它将搜索 #wrapper 内的所有元素。我的问题是哪个更好,使用缓存变量和查找然后发出点击事件,或者只是简单地执行 $('#whatever').click(..

whatever 可以是类或 id。

最佳答案

如果你在 whateverIDID 的地方使用它,那么 $('#whateverID').click(.. 会给你一点点性能更好,但是如果 whateverCLASS 是类或 ID 以外的任何内容,$wrapper.find('whateverCLASS').click(.... 会更好,因为遍历将仅限于作为整个 DOM 子集的特定容器

关于jQuery 缓存选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5845862/

相关文章:

xcode - iOS-在具有参数的按钮上调用选择器

ios - 选择器未触发委托(delegate)方法

java - JMS 选择器奇怪的行为

javascript - 使用延迟加载自定义 pagerTemplate

caching - 在获取新数据时在 react-native 应用程序上使用中继缓存数据

ruby-on-rails - 在 Rails 中缓存 JSON 结果

iOS - 保存登录的用户信息

jquery - 在 jquery 中插入 css 背景图像

php - 通过MySQL建站的优缺点

javascript - JQuery 隐藏选择选项在 IE8 或 IE11 中不起作用