Задать вопрос
@Vlad_samosuev

Не могу понять в чем ошибка в коде JS?

прошу помочь найти ошибку в коде:

const select = document.querySelector('select');
const allLang = ['en', 'ru'];

select.addEventListener('change', changeURLLanguage);

// перенаправить на url с указанием языка
function changeURLLanguage() {
let lang = select.value;
location.href = window.location.pathname + '#' + lang;
location.reload();
}

function changeLanguage() {
let hash = window.location.hash;
hash = hash.substr(1);
console.log(hash);
if (!allLang.includes(hash)) {
location.href = window.location.pathname + '#en';
location.reload();
}
select.value = hash;
document.querySelector('title').innerHTML = langArr[hash];
// document.querySelector('.lng-chip').innerHTML = langArr['chip'][hash];
for (let key in langArr) {
let elem = document.querySelector('.lng-' + key);
if (elem) {
elem.innerHTML = langArr[key][hash];
}

}
}

changeLanguage();

вот что пишет google в консоле:

Uncaught TypeError: Cannot read properties of null (reading 'addEventListener')
at app.js:4:8
  • Вопрос задан
  • 210 просмотров
Подписаться 2 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
Gimir
@Gimir
JavaScript dev
Очевидно квери селектор не нашел твой элемент и вернул null, если загружаешь скрипт в хеде, сделай обертку window.addEventListener('load', () => { .... })
Чтобы вешать события только после того как дом готов
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
div. Ставрополь
от 40 000 до 90 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽