Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Почему этот блок кода все время выдает null ?

☀︎Питруха☀︎ Мастер (1806), закрыт 2 недели назад
  let D = document.querySelector("slider"); 
console.log("Значение ID: ",D);
использую react js
Лучший ответ
Андрей Высший разум (460605) 1 месяц назад
Перемести JS-код на странице вниз - ниже того тега, который ты пытаешься получить.
Остальные ответы
epifan Мыслитель (6815) 1 месяц назад
Как вариант, элемент с таким тегом не существует (<slider>).

Возможно, вы хотите обратиться к элементу по классу, тогда нужно так
 let D = document.querySelector(".slider"); 
☀︎Питруха☀︎Мастер (1806) 1 месяц назад
...с таким id... существует
epifan Мыслитель (6815) ☀︎Питруха☀︎, по id нужно так let D = document.querySelector("#slider");
☀︎Питруха☀︎Мастер (1806) 1 месяц назад
пробовал - то же самое
Нептун канализации Мастер (1031) 1 месяц назад
Потому что такого селектора нет. Может быть либо #slider, либо .slider. Но и этого мало, нужна проверка, что компонент смонтирован на этот момент
☀︎Питруха☀︎Мастер (1806) 1 месяц назад
с решеткой то же самое
Рик Санчес Гуру (3741) 1 месяц назад
Потому что нет такого селектора "slider". А если использовать React, то использовать его по-полной и для ссылки на компонент импортировать хук useRef, а не через нативный js
Dlazder Мудрец (16889) 1 месяц назад
такой вызов функции всегда будет возвращать null, ведь ты передал некорректный селектор
Собака Знаток (461) 1 месяц назад
Если используешь реакт, забудь про querySelector.
Повесь на тег ref, и лучше смени слайдер, если он не адаптирован под реакт полностью. Keen-slider, например.
eshth strhrtj Гуру (4094) 1 месяц назад
document.querySelector выбирает элемент HTML по его названию/класса/ID или комбинаций селекторов, и возвращает ео в качестве объекта, в случае отсутствия элемента в структуре документа querySelector возвращает null.

При использовании querySelector для выборки элемента нужно использовать именно синтаксис селектора, это тоже самое что и в CSS, например есть селектор тега это body, p, blockquote, img и т.д. само название тега является селектором, чтобы выбрать элемент по классу используется точка пример .slider выберет элемент с классом slider, чтобы выбрать элемент по ID используется решетка # пример #slider

В твоем случае ты пытаешься выбрать элемент с названием slider который в принципе даже не существует в стандарте HTML, это одна из причин по которой может получиться результат null.

Если нужно выбрать элемент с ID используй синтаксис селектора ID такой же как в CSS #slider, если бы ты использовал просто getElementById то # можно было бы не писать.

Другая причина по которой может получиться null это рассположение кода, обычно весь скрипт который обрабатывает HTML расспологают в конце перед </body> либо используют атрибуты async/defer или используется событие DOMContentLoaded.
Похожие вопросы