Синтаксические селекторы jQuery, это ТОЧНО то же самое? - PullRequest
1 голос
/ 30 ноября 2009

Есть некоторые предпочтения, которые я наблюдал для синтаксиса выбора, такие как:

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

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

» parent> child Возвращает: Массив Соответствует всем дочерним элементам, указанным «child» элементов, указанных «parent». «

и

» children (expr) Возвращает: jQuery Получите набор элементов, содержащий все уникальные непосредственные дочерние элементы каждого соответствующего набора элементов. «

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

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

1 Ответ

1 голос
/ 30 ноября 2009

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

$ ('# mydiv> a.selectMe') - Находит непосредственных детей.

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...