未捕获的TypeError:answer.appendChild不是函数

问题描述 投票:0回答:1

这是我的全部代码:


 <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);时出错。

javascript append appendchild
1个回答
0
投票

我在您的代码中没有看到answer.appendChild(button);,但我看到answerdocument.querySelectorAll('.anwser1')

问题是querySelectorAll() 返回所有元素作为NodeList对象-不仅是一个元素。您正在寻找querySelector(),它返回与指定的CSS选择器匹配的第一个元素,或者如果您想使用querySelectorAll()获得所有答案,则必须遍历NodeList中的每个元素(可以使用forforEach或类似名称)。

© www.soinside.com 2019 - 2024. All rights reserved.