Показать сообщение отдельно
  #3 (permalink)  
Старый 19.04.2016, 12:58
Новичок на форуме
Отправить личное сообщение для Orleon Посмотреть профиль Найти все сообщения от Orleon
 
Регистрация: 19.04.2016
Сообщений: 5

Так сейчас попробую объяснить получше:

в HTML все просто имеем всего один ID в body:

Код:
<body>
	<div id="matrix1"></div>
</body>
далее в JS генерируем матрицу из заданного кол-ва дивов:

function Matrix(containerID,rows,cols){
	this.containerID = containerID;
	this.rows = rows; //Кол-во строк
	this.cols = cols; //Кол-во столбцов
	var n = this.rows * this.cols; //Кол-во ячеек матрицы
	this.create = function (){
			var matrix = document.getElementById(this.containerID);
			for (var i = 0; i < n; i++){
				var div = document.createElement('div');
				div.className = 'cell';
				matrix.appendChild(div);
			}
		}


Далее нам нужно просто div с заданными параметрами col и row закрасить цветом. Для этого у меня функция фнутри того же класса Matrix:

this.setCell = function([row,col],val){ //Установка ячейки
		var a = [row,col]
		var index = (a[0]-1)* this.cols + (a[1]-1);
		var cell = document.getElementById(this.containerID).children[index]; //Получаем ячейку
		cell.className = (val ? "cell light" : "cell"); //Присваеваем класс в зависимости от параметра val
	}


Так вот внутри этой функции в 4 строке идет обращение к DOM-элементу. Нужно эту строчку поменять так, чтобы было обращение через jQuery
Ответить с цитированием