关于通过类或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对象。我注意到在我的很多代码中我倾向于使用前一种方法(因为它可以使其更具动态性),但我总是好奇,如果以后一种方式更快地做到这一点。
由于
答案 0 :(得分:2)
我认为,缓存选择器与否,使用id选择器会更快。 ID选择器几乎是直接字典查找与缓存/最接近的组合,就像字典查找,然后是树遍历。
http://jsperf.com/traverse-from-cached-selector-vs-id-selector
使用原生documentGetElementById函数完成最快的查找。
var container = $(document.getElementById('MyContainer'));