function checkCell(i, j)
{var tbl = document.getElementById(«tbl»);
var cell = tbl.rows[i].cells[j];
var s = mines.checkCell(i, j);
cell.innerHTML = s;
if (s == "*")
cell.bgColor = 'red';}
function initTable()
{var tbl = document.getElementById(«tbl»);
for (var i = 0; i < mines.rowCount; i++)
{var row = tbl.insertRow(i);
for(var j = 0; j < mines.colCount; j++)
{var cell = row.insertCell(j);
cell.innerHTML = '?';
function SetCellClick(i, j)
{cell.onclick= function() {checkCell(i, j)};};
SetCellClick(i, j);}}}
Давайте по порядку. Строчку «var mines = new minesClass(10, 10, 10);" я перенёс наверх, чтобы переменная mines стала доступна из других функций (напомню, что переменная, объявленная внутри функции доступна только внутри этой функции, а «внешние» переменные доступны также в других функциях). Нам потребуется использовать эту переменную в функции checkCell, которую мы выделили из функции initTable.
По сути, в функции checkCell мы получаем из таблицы ячейку с i-ой строкой и j-ым столбцом и присваиваем ей текст, соответствующий количеству бомб рядом (раньше мы это делали непосредственно при инициализации таблицы). Для получения ссылки на ячейку, мы получаем ссылку на таблицу с помощью метода getElementById заранее предопределённой переменной document. Далее мы получаем ссылку на нужную строку, обращаясь к полю rows таблицы (это массив, поэтому после имени поля в квадратных скобках указываем индекс) и сразу же обращаемся к полю cells строки (это тоже массив) для получения искомой ссылки на ячейку.
Последующие строки функции checkCell мы перенесли из функции initTable без изменений.
Ну и последнее о чём осталось рассказать — функция initTable. Несколько строчек мы оттуда унесли и появилась, несколько добавили:
cell.innerHTML = '?';