是的,所以我想常识是,对于你将要访问的元素,最好的方法是像这样缓存它们:
var myEl = $('.myclass');
Run Code Online (Sandbox Code Playgroud)
然后你可以在将来访问$(myEl)并且你不需要再次搜索DOM,对吗?好吧,假设我有一个相当复杂的html结构,我需要经常访问几个不同的元素,比如20-30.这种类型的东西30次非常难看!
var elA = $('.myela'),
elB = $('.myelb');
Run Code Online (Sandbox Code Playgroud)
等等,你明白了......所以这样做有什么"坏",在所有这些元素上保持相同的类,但给它们一个唯一的id,然后这样做:
var myElementObject={};
$('.myelems').each(function(){
myElementObject[$(this).attr('id')] = $(this);
});
Run Code Online (Sandbox Code Playgroud)
这样就像我得到一个object.whateverId那就是缓存元素,所以现在我可以随意使用它们而不必一直重新查询DOM,这个假设是否正确,这是一个不好的做法吗?你们是怎么做到的?
谢谢!