Условие то выполняется. Но затем вы вызываете
getCellByIndex(21, 1)
. Эта функция возвращает undefined, так как нету элемента с таким "id"...
if(21 > 20){
getCellByIndex(21, 1).style.....
}
А вообще, подход у вас странный - не лучше ли представить поле как таблицу (я про
<table>
)? Тем более, раз уж не хотите собрать все элементы 1 раз и положить во многомерный массив, а собираете их каждый раз через
querySelectorAll
(который и не гарантирует, что порядок будет верным). С таблицами то работать проще:
тык