@Timofei1997

Какое отличие childNodes и getElementsByClassName?

Пытаюсь написать игру крестики нолики:

var blockMassive = []

for (let i = 0; i < 9; i++) {
   document.getElementById('playing_field').innerHTML+='<div class="block"></div>'
   // blockMassive[i] =  document.getElementById('playing_field').childNodes[i]
}

blockMassive = document.getElementsByClassName('block')

var turn = 0
document.getElementById('playing_field').onclick = function(event) {
   // document.getElementById('playing_field').innerHTML = '1'
   // console.log(event)
   turn+=1
   console.log(event)
   if (turn%2 === 1){
      if (event.target.innerHTML === 'O') { 
         turn-=1
         alert('Ошибка')
   }
      else { event.target.innerHTML = 'X'}
      }
    else { if (event.target.innerHTML === 'X') { 
      turn-=1
       alert('Ошибка')
      }
    else { event.target.innerHTML = 'O'}}

   if (blockMassive[0].innerHTML == 'X' && blockMassive[1].innerHTML == 'X' &&  blockMassive[2].innerHTML == 'X') {
      blockMassive[0].innerHTML += '<img class = "line" src="Line.png" alt="">'
      alert('Победили крестики')
   }
   
}

Для проверки, кто победил, я использую массив, состоящий из <div class="block"></div>, и если я использую document.getElementsByClassName('block'), то всё работает, а если
blockMassive[i] =  document.getElementById('playing_field').childNodes[i]
, то проверка не работает, хотя, как я понимаю и в том, и в другом случае создаётся массив из элементов. Можете, пожалуйста, объяснить почему?
  • Вопрос задан
  • 81 просмотр
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы