Селекторы синтаксиса jQuery, это ТОЧНО одно и то же?

StackOverflow https://stackoverflow.com/questions/1819538

  •  10-07-2019
  •  | 
  •  

Вопрос

Я заметил некоторые предпочтения в отношении синтаксиса выбора, такие как:

 $('#mydiv > a.selectMe').hide();
 $('#mydiv').children('a.selectMe').hide();

Мне это кажется немного запутанным, поскольку документация по jQuery здесь немного двусмысленна:

"Родитель> Ребенок возвращается:Массив соответствует всем детствам, указанным «ребенком» элементов, указанных «Родителем»."

и

"Дети (Expr) возвращаются:jQuery Получите набор элементов, содержащих все уникальные непосредственные дети каждого из подходящих элементов."

Вопрос, который, по моему мнению, необходимо прояснить, заключается в том, возвращает ли первая форма ВСЕХ детей/внуков или только ближайших детей, как указывает вторая форма.Одна из них — это форма «селектора», а другая — в разделе «обход» на страницах документации jQuery, которые для меня представляют собой схожие функциональные задачи, но не совсем одно и то же.

Итак, вопросы здесь:
Какая форма быстрее?ДЕЙСТВИТЕЛЬНО ли они выбирают одно и то же, или форма «родитель > ребенок» выбирает как внуков, так и ближайших детей?

Это было полезно?

Решение

$('#mydiv a.selectMe') — находит все привязки класса selectMe, которые являются потомками тега с идентификатором "mydiv".Они могут быть глубоко вложены.

$('#mydiv > a.selectMe') — находит непосредственных дочерних элементов.

Что касается того, что быстрее из двух ваших примеров рождения непосредственных детей...Я провел несколько испытаний на время, чтобы проверить.

У меня была страница с 10 000 тегами привязки с классом selectMe внутри Div с идентификатором mydiv.

$("#mydiv").children("a.selectMe") - 485ms
$("#mydiv > a.selectMe") - 374ms

По сути, это незначительная разница, хотя выполнение всего с помощью селекторов всегда происходило быстрее.Однако если у вас на странице 10 тысяч привязок, вы столкнулись с совершенно другой проблемой.:-)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top