Есть ли различия между этими селекторами jQuery? - PullRequest
2 голосов
/ 23 мая 2011

В чем разница между тремя образцами ниже и какой из них лучше (если есть)?

$("#x span").hide();

$("#x").find("span").hide();

$("span", "#x").hide();

Ответы [ 2 ]

3 голосов
/ 23 мая 2011

Они все будут совпадать; лучший один основан на контексте.Я бы использовал первый пример, если у меня не было переменной, указывающей на существующий набор.Тогда я, очевидно, использовал бы метод find().

Старый $(selector, context) (ваш третий пример) в наши дни мало видели, вероятно, потому что в любом случае он переводится на $(context).find(selector) за кулисами (и так легче читать).

0 голосов
/ 23 мая 2011

Все они делают один и тот же выбор, однако первый работает хуже, чем последние два, которые примерно одинаковы, см .:

http://jsperf.com/jquery-selector-perf-right-to-left/48

http://jsperf.com/jquery-selector-context-vs-find

http://jsperf.com/jquery-selector-performance/11

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