Какой более эффективный способ получить элемент по id - #id или span # id и почему? - PullRequest
0 голосов
/ 24 октября 2011

Какой более эффективный способ получить элемент по идентификатору (если его идентификатор уникален)?

#id

или

#div1 #id

или

span#id

а почему?

Не могли бы вы сказать мне, где я могу прочитать о таких вещах? (Как использовать селекторы jQuery быстрее и эффективнее и почему именно так )

Спасибо!

Ответы [ 6 ]

2 голосов
/ 24 октября 2011

#id // самый эффективный способ получить элемент по идентификатору в jQuery

идентификаторы элементов HTML предполагаются уникальными, и поэтому jQuery будет использовать document.getElementById() вместо document.getElementsByTagName() и выполнять итерацию по массиву элементов, ищущему правильный.

2 голосов
/ 24 октября 2011
#id

Почему?Поскольку он не смотрит на другие условия, и в любом случае, #id должен быть только один, поэтому не имеет смысла (во многих случаях) использовать span#id

1 голос
/ 24 октября 2011

CSS-селекторы (также как Sizzle , вещь в jQuery, которая выполняет запрос) работают с

справа налево

знаячто вы можете легко ответить на вопрос самостоятельно.Просто запрос #id всегда самое быстрое решение.Не только по той причине, что сначала будут запрошены дополнительные операторы после этого, но также jQuery оптимизирует этот случай для вас.Это означает, что просто наличие селектора, подобного #id, будет напрямую вызывать .getElementById(), который является самой быстрой из возможных операций DOM для получения ссылки на элемент.

Однако, это также быстрее, чтобы не быть явным вдругие случаи.Это из-за справа налево вещи.

1 голос
/ 24 октября 2011

Просто идентификатор лучше просто потому, что код должен искать один элемент.
См. этот тест, который доказал это http://jsperf.com/id-vs-tag-id

0 голосов
/ 24 октября 2011

#id самый быстрый, потому что он уникален.

Я не знаю, где вы можете прочитать об этом, но вот страница, где вы можете проверить и выбрать селекторы:

Селекторы теста

0 голосов
/ 24 октября 2011

С jQuery очень просто использовать $("#theId"), потому что все, что он ищет, - это уникальный идентификатор, а не другие условия, такие как родительский идентификатор

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