从缓存的选择器遍历DOM比在DOM中查找ID’d元素更快吗?

关于通过类或id或其他选择器查找元素是否更快,存在很多问题。 我对此不感兴趣。 我想知道你是否有:

var link = $(this); //let's say you're in a click handler 

通过这样做找到容器是否更快

 var container = link.closest('.container'); //assume container is .container 

要么

 var container = $('#mycontainer'); //assume same element as above 

我问这个问题不仅仅是针对上面的特定场景(好吧,是的,对于这种场景也是如此),而是针对缓存遍历与创建具有ID的新jQuery对象。 我注意到在我的很多代码中我倾向于使用前一种方法(因为它可以使它更具动态性),但我总是很好奇,如果以后一种方式做得更快。

谢谢

我认为,缓存选择器与否,使用id选择器会更快。 ID选择器几乎是直接字典查找与缓存/最接近的组合,类似于字典查找,后跟树遍历。

http://jsperf.com/traverse-from-cached-selector-vs-id-selector

最快的查找将使用本机documentGetElementById函数完成。

 var container = $(document.getElementById('MyContainer'));