Элемент + ID против только ID в jquery?

div#some_id будет сканировать все div#some_id в DOM.

#some_id получит идентификатор непосредственно из DOM.

Так что быстрее? $('div#some_id') или $('#some_id') ?

Поскольку идентификаторы должны быть уникальными в DOM, поэтому div#some_id будет выполнять ненужное сканирование всех элементов DOM, а #some_id будет осуществлять прямое сканирование на нем.

Вы также можете увидеть результат здесь: div-some-id-vs-some-id

См. Раздел Оптимизация селекторов :

Начинать селектор с идентификатором всегда лучше.

а также

Выбор только для ID обрабатывается с помощью document.getElementById (), что очень быстро, потому что оно является родным для браузера.

Поэтому ответ: $ (‘# some_id’) должен быть быстрее.

Я проверил простой тест на консоли. Кажется, просто использование #id происходит быстрее, чем сказал @Ulli. Вот тестовый код:

 var perf = performance; var a = perf.now(); $("#custom-header"); console.log(perf.now() - a); VM795:2 0.03399999695830047 undefined var a = perf.now(); $("#custom-header"); console.log(perf.now() - a); VM796:2 0.0329999893438071 undefined var a = perf.now(); $("#custom-header"); console.log(perf.now() - a); VM797:2 0.0329999893438071 undefined var a = perf.now(); $("#custom-header"); console.log(perf.now() - a); VM798:2 0.03500000457279384 undefined var a = perf.now(); $("div#custom-header"); console.log(perf.now() - a); VM799:2 0.07000000914558768 undefined var a = perf.now(); $("div#custom-header"); console.log(perf.now() - a); VM800:2 0.06600000779144466 undefined var a = perf.now(); $("div#custom-header"); console.log(perf.now() - a); VM801:2 0.0680000230204314 undefined var a = perf.now(); $("div#custom-header"); console.log(perf.now() - a); VM802:2 0.06799999391660094 undefined var a = perf.now(); $("div#custom-header"); console.log(perf.now() - a); VM803:2 0.06799999391660094 undefined