Почему innerHTML не работает?
а зачем вам JQuery если вы его не используете?
.html(0)
Рабочий код var n = 3;
var n4 = n*n*n*n;
var cells = [];

function declare_grid()
{
    document.writeln('    <div class="grid-container">');
    for (var i = 0; i < n4; i++)
    {
	document.writeln('        <div class="grid-cell" id = "grid-cell'+i+'"></div>');
    }
    document.writeln('    </div>');
        for (var i = 0; i < n4; i++)
    {
	cells[i] = document.getElementById('grid-cell' +i)
        cells[i].style.backgroundColor = "#258";  // этот код работает
    }
    //    cells[0].innerHTML = '0';   если убрать комментарий не работает
   //     document.getElementById('grid-cell0').innerHTML = '0';   тоже не работает
}

function grid_initialize()
{
    // Те же самые инструкции попробовал. Результат такой же
     //    cells[0].innerHTML = '0';   если убрать комментарий не работает
   //     document.getElementById('grid-cell0').innerHTML = '0';   тоже не работает
}
Вот еще сгенерированный html