所以,我有一些看起来像这样的 JavaScript/jQuery:
var $foo = $('#bar');
$foo.hide();
我一直在假设 jQuery 对给定的选择器进行操作,并将生成的 DOM 元素保存到var $foo
... 据我所知,这是真的。
但是,调用是否$foo.hide()
会导致 jQuery 重新搜索#bar
元素?
所以,我有一些看起来像这样的 JavaScript/jQuery:
var $foo = $('#bar');
$foo.hide();
我一直在假设 jQuery 对给定的选择器进行操作,并将生成的 DOM 元素保存到var $foo
... 据我所知,这是真的。
但是,调用是否$foo.hide()
会导致 jQuery 重新搜索#bar
元素?
不,不是,在调用 $(elem) 时会进行引用。这就是为什么var
使用它来存储对元素的引用。存储引用始终是最佳实践,var
因此下次使用代码时,将使用旧引用,并且无需再次搜索 DOM。
//reference
var a = $('#id');
//use
a.hide();
//same reference, use again
a.show();
据我了解,将 jQuery 对象设置为 var 会缓存该对象,因此每次需要使用 jQuery 对象执行某些操作时它都不会重新构建它。
关于这个的一些文章,这是我在谷歌上找到的第一篇
但是我认为$('#bar')
直接引用 document.getElementById('bar') 所以,没有太多的构建,因此相当快,但是当你有一个对象数组时它会更快。$('.class tagType')