javascript - 总是使用 jquery 选择器或将它们缓存在变量中?

标签 javascript jquery performance

jQuery 选择器很棒,但有时我发现自己一遍又一遍地输入它们,这有点烦人。

 $('#mybutton').click(function() {
    $('#message-box').doSomething();
    $('#message-box').doSomethingElse();
    $('#message-box').attr('something', 'something');
 });

我经常喜欢在变量中缓存我的对象:

$('#mybutton').click(function() {
    var msg = $('#message-box');
    msg.doSomething();
    msg.doSomethingElse();
    // you get the idea 
});

这两种模式之间有什么优缺点吗?有时感觉创建变量是额外的工作,但有时它可以节省我的手指大量打字。是否有任何需要注意的内存问题?选择器在使用后是否能很好地清理,而我的不良编码习惯往往会使变量在内存中保留更长时间?

这不会让我夜不能寐,但我很好奇。谢谢。

编辑:请参阅 this question .它本质上问的是同一件事,但我更喜欢这个答案。

最佳答案

你应该把它们链接起来:

$('#mybutton').click(function() {
  $('#message-box').doSomething().doSomethingElse().attr('something', 'something');
 });

如果你需要一遍又一遍地做某事并且函数不返回 jQuery 对象,将它们保存在 var 中会更快。

关于javascript - 总是使用 jquery 选择器或将它们缓存在变量中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/329151/

相关文章:

javascript - 在我的购物 list 应用程序中,每件商品有多个按钮,而不是每件商品只有一个按钮?

Java:如何制定有效的机会方法

javascript - jQuery 库 OpenSeaDragon 上下文中的 JavaScript 'element' 是什么?

javascript - 在ajax jquery中显示json响应,

javascript - 不触发特定观察者的数组突变

javascript - 数据未正确分组

javascript - jquery document.get ready 中的多个函数不起作用

jquery:以数组格式检索提交的名称值

c++ - 更改完全不相关的代码时,Visual Studio C++ 编译器生成的代码速度降低了 3 倍

r - 从列表中选择多个元素以构建数据框的最快方法