← Все вопросы

getElementById или querySelector — что выбрать новичку и в чём разница?

Задан 14 месяцев назад1.3к просмотров2 ответа
6

Вижу в разных уроках то getElementById, то querySelector. Оба вроде находят элемент. В чём разница и какой использовать, если я только учусь?

2 ответа

10
✓ Принятый ответ — помог автору

Оба находят элемент на странице, разница в том, что им передавать:

// по id, без решётки
document.getElementById('menu');

// по любому CSS-селектору, с решёткой для id
document.querySelector('#menu');
document.querySelector('.card');     // первый элемент с классом card
document.querySelector('button');    // первая кнопка

getElementById умеет искать только по id. querySelector понимает любой CSS-селектор (как в стилях): id, класс, тег, что угодно — и возвращает первый подходящий элемент.

Совет новичку: можно использовать только querySelector/querySelectorAll — их синтаксис как в CSS, и одного инструмента хватит на всё. Главное помни: для id нужна #, для класса ..

3

Маленький нюанс: если элементов с классом несколько, querySelector('.card') вернёт только первый. Чтобы получить все — querySelectorAll('.card'), и потом пройтись по ним циклом. А getElementById всегда про один элемент, потому что id на странице должен быть уникальным.

Ваш ответ

Войдите, чтобы ответить на вопрос.