2013-11-02 3 views
2

следует ли заменить document.getElementById или так на document.querySelector? любая разница?using querySelector вместо document.getElementById

Вы порекомендуете мне использовать querySelector?

+1

Можно ли использовать 'querySelector()' (или 'querySelectorAll()'), полностью зависит от ваших пользователей, имеющих браузеры, которые внедряют этот метод, и в ваш собственный конкретный прецедент. У вас возникла проблема с использованием, или * не * использованием, 'querySelector()'? –

ответ

3

Если вы все равно выбираете идентификаторы, используйте getElementById, так как это намного эффективнее, чем использование querySelector на селекторе id. Последний запускает весь синтаксический селектор CSS, в то время как первый может просто взять идентификатор и получить элемент с этим идентификатором напрямую.

Конечно, при выборе на основе других критериев, отличных от идентификатора элемента, querySelectorquerySelectorAll), очевидно, имеет свое место.

(The obligatory benchmark доказать это утверждение, но я хочу отметить, что тесты не все, а разница, вероятно, не будет большой разницы в реальном приложении.)

0

Если querySelector доступен в браузера, который используют ваши пользователи. Тогда вы можете использовать его. Приятно, что вам не нужно помечать ваш html идентификаторами. Выбор с помощью селекторов css чрезвычайно гибкий.

Производительность - это красная сельдь. Мой дерьмовый старый ноутбук может управлять 3 миллионами выборов в секунду ...

Настоящая проблема - совместимость. Как вы собираетесь работать с браузерами, которые не имеют его? Вы заботитесь? Вы, вероятно, должны заботиться.

0

Оба варианта предназначены для вашего случая. Но getElementById - наиболее проверенный подход. Однако, если вас не интересуют устаревшие браузеры, тогда также будет нужен запросSelector.

Наслаждайтесь!

Смежные вопросы