Uncaught TypeError: answer.appendChild не является функцией - PullRequest
0 голосов
/ 19 марта 2020

Это весь мой код:


 <div class="conteiner">
    <h3 class="kitxva hide">Question</h3>
 <div class="questionCon " id="questionCon" >

    <button class="anwser1 ">Anwser1</button>
    <button class="anwser1 ">Anwser1</button>
    <button class="anwser1 ">Anwser1</button>
    <button class="anwser1 ">Anwser1</button>

   <div class="controls">
    <button id="start" class="anwser">Start</button>
    <button id="next" class="anwser1">Next</button>
   </div>
 </div>
</div>

const start = document.getElementById('start');
const next = document.getElementById('next');
const questionCon = document.getElementById('questionCon');
const kixtva = document.querySelector('h3')
const anwser = document.querySelectorAll('.anwser1');


let shuffleQuestions, currentQuestionIndex


start.addEventListener('click',startGame);

function startGame(){
  for (var i=0;i<anwser.length;i+=1){
    anwser[i].style.display = 'block';
  }
  kixtva.classList.remove('hide');
  start.classList.add('hide')

  shuffleQuestions = questions.sort(() => Math.random() - .5)
  currentQuestionIndex = 0;
  setNextQuestion()
}

function setNextQuestion(){
   resetState()
   showQuestion(shuffleQuestions[currentQuestionIndex])
}

function resetState(){
   next.classList.add('hide')
   while(anwser.firstChild){
     anwser.removeChild(anwser.firstChild)
   }
}

Произошла ошибка со ссылкой answer.appendChild(button);.

1 Ответ

0 голосов
/ 19 марта 2020

Я не вижу answer.appendChild(button); в вашем коде, но вижу, что answer равно document.querySelectorAll('.anwser1').

Проблема в том, что querySelectorAll() возвращает все элементы как NodeList объект - не только один элемент. Вы ищете querySelector(), который возвращает первый элемент, который соответствует указанному селектору CSS, или, если вы хотите получить все ваши ответы с помощью querySelectorAll(), вам нужно перебрать каждый элемент в NodeList (вы можете использовать for или forEach или что-нибудь подобное).

...