В чём разница между querySelector и getElementById?

106
01 марта 2021, 15:20

Вопрос, возможно, слишком общий или не по теме, но мне интересно. Я видел, что кто-то использует querySelector для поиска элемента по id, а не по имени класса. Почему бы не воспользоваться методом getElementById, ведь он специально для этого и предназначен? querySelector выполняет это быстрее или как-то корректнее?

Answer 1

Как показал тесты бенчмаркинга getElementById почти в два раза быстрее чем querySelector

Как вы сказали отличий в основном нет, только querySelector немного медленней, чем getElementById, и может обрабатывать в результате не только id, но и классы , атрибуты и т.д.

querySelector:Этот метод часто используется, когда мы заведомо знаем, что подходящий элемент только один, и хотим получить в переменную сразу его. Caniuse

getElementById:Если в документе есть несколько элементов с уникальным id (что не правильно), то поведение неопределено. То есть, нет гарантии, что браузер вернёт именно первый или последний – вернёт случайным образом. Caniuse

Также если у элемента есть id многие программисты используют прямое обращение через переменную, чтобы было меньше букв и проще было понять происходящее. Но предпочтительным методом является document.getElementById.

<h1 id="myTag"></h1>
myTag.innerHTML = "Какой нибудь текст"
READ ALSO
Discord JS: Не могу изменить имя бота

Discord JS: Не могу изменить имя бота

Хочу сделать, чтобы бот менял свой никПодскажите как правильно это сделать

127
JS, await with new

JS, await with new

Всем приветПомогите пожалуйста подружить асинхронность c оператором new

92
Вывести все нечетные числа из строки

Вывести все нечетные числа из строки

Необходимо вывести все нечетные числа из строкиПример кода, который при запуске зависает:

137