Есть много вопросов о том, быстрее или быстрее найти элемент через класс или идентификатор или какой-либо другой селектор. Меня это не интересует. Я хочу знать, если у вас есть:Быстрее пересечь DOM из кэшированного селектора, чем найти элемент ID'd в DOM?
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
Я задаю этот вопрос не только для конкретного сценарий выше (хорошо, да, да, для этого сценария тоже), но для кэширования обхода против создания нового объекта jQuery, у которого есть идентификатор. Я замечаю, что во многих своих кодах я стараюсь использовать прежний метод (поскольку он может приспособиться к более динамичному), но мне всегда было любопытно, если бы это было быстрее, чтобы сделать это последним.
Благодаря
Мое подозрение, что последнее быстрее, но вы его протестировали? Было бы довольно легко выбить тестовую упряжь ... –
Я не уверен, что эта информация устарела и исправлена с помощью самых последних итераций jQuery, но я уверен, что '.closest()' относительно чем другие альтернативы. –
На самом деле я создал jsperf: http://jsperf.com/cached-dom-traversal-vs-new-id-selection выглядит как идентификатор, безусловно, самый быстрый, поиск по классу следующий. – Jason