@Smirator

Uncaught TypeError: can't access property «add» JS. Как решить?

Приветствую всех! Казалось бы, банальная проблема. Но, не могу найти решение. Перерыл кучу материала (в том числе англоязычного) - результата 0. Подскажите, пожалуйста, почему не работает?
Переписывать код, демонстрируя свои навыки прогрессивного кодинга не нужно. Только подсказка /наводка / дополнительная строка , с указанием проблемы.
Благодарю!

function selectChange(){
  let lang = document.getElementsByName('lang')[0].value;
  let print = document.getElementsByName('print')[0].value;
  let typePrint = document.getElementsByName('typePrint')[0].value;

  if(lang){
    lang.classList.add('block');
    lang.setAttribute('required', '');

    if(print === 'no'){
      document.getElementById('noPrint').classList.add('block');
      typePrint.classList.add('none');
      typePrint.removeAttribute('required');
    }
      else if(print === 'yes' ){
        if(lang === 'en'){
            typePrint.classList.add('block');
            typePrint.setAttribute('required', '');
        }
        else {
          typePrint.classList.add('none');
          typePrint.removeAttribute('required');
        }
      document.getElementById('noPrint').classList.add('none');
    }
  }
   else{
    print.classList.add('none');
    print.removeAttribute('required');
    typePrint.classList.add('none');
    typePrint.removeAttribute('required');
    document.getElementById('noPrint').classList.add('none');
}
}
  • Вопрос задан
  • 94 просмотра
Пригласить эксперта
Ответы на вопрос 1
E1ON
@E1ON Куратор тега JavaScript
Programming, Gamedev, VR
Потому, что:
let lang = document.getElementsByName('lang')[0].value;

не является DOM элементом, там скорее всего строка, значение из инпута, e.g.

Попробуйте так:
let lang = document.getElementsByName('lang')[0];
...
lang.classList.add('block');
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
25 нояб. 2024, в 14:51
10000 руб./за проект
25 нояб. 2024, в 14:41
20000 руб./за проект