是的,所以我想常识是对于您将要经常访问的元素,最好的方法是像这样缓存它们:
var myEl = $('.myclass');
然后您以后就可以访问 $(myEl) 而不需要再次搜索 DOM,对吗?好吧,假设我有一个相当复杂的 html 结构,我需要经常访问几个不同的元素,比如 20-30。这种事情做 30 次是非常丑陋的!
var elA = $('.myela'),
elB = $('.myelb');
等等等等,你明白了..那么这样做有什么“不好”的地方吗,在所有这些元素上保持相同的类,但给它们一个唯一的 id,然后这样做:
var myElementObject={};
$('.myelems').each(function(){
myElementObject[$(this).attr('id')] = $(this);
});
这样就好像我得到了一个 object.whateverId,这就是缓存的元素,所以现在我可以随心所欲地使用它们,而无需一直重新查询 DOM,这个假设是否正确,这是一种不好的做法吗?你们是怎么做到的?
谢谢!
最佳答案
如果您要分配 id,则只需使用 $('#id')
因为它使用 getElementById
非常快而且可能不会慢很多而不是将它们放在某个对象哈希中。
还可以考虑对这些元素应用一个公共(public)类或以其他方式对它们进行分组,以便您可以缓存 $('.mycommonclass')
关于javascript - jQuery/javascript 缓存元素以提高效率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5011403/