Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Создание таблицы (https://javascript.ru/forum/misc/11517-sozdanie-tablicy.html)

Aspiring 27.08.2010 18:00

Создание таблицы
 
Доброго времени суток

Создаю таблицу. Пользователь вводит необходимое число вертикальных и горизонтальных ячеек.

Каждая клетка таблицы - input со своим значением. Все клетки - массив.

Стоит задача вывести массив в виде таблицы. Я представляю решение задачи примерно так:
rows - число вертикальных ячеек
cells - число горизонтальных ячеек
a[i] - массив, где i = rows * cells

Код:

for (i=0; i<rows*cells; i++) {
for (k=1; k<rows; k++) {
if (i == cells * k) { вписываем в HTML a[i] + вписываем в HTML код <br />, 
обрываем выполнения этой инструкции во избежание повторного написания};

else {просто пишем a[i],  обрываем выполнения этой инструкции
во избежание повторного написания}
}
}

Примерно так. Как это осуществить? А именно какие коды вставлять?

Возможно есть другие более правильные пути решения задачи. Какие?

ixth 28.08.2010 12:09

Все немного проще:
var node = '';
for (var j = 0; j < rows; j++) {
	for (var i = 0; i < cols; i++) {
		node += '<input type="text" name="' + (j * cols + i) + '" />';
	}
	node += '<br />';
}

MikhailGirshberg 30.08.2010 17:27

Цитата:

Сообщение от Aspiring
for (i=0; i<rows*cells; i++) { for (k=1; k<rows; k++) { if (i == cells * k) { вписываем в HTML a[i] + вписываем в HTML код <br />, обрываем выполнения этой инструкции во избежание повторного написания};

вложенные циклы выглядят подозрительно: внешний перебирает все ячейки во всех строках, внутренний - все строки? Для каждой ячейки?

Aspiring 30.08.2010 18:41

Да вообще тупое у меня было решение :)

Спасибо ixth, дал понять как надо решать подобные задачи. Помучавшись с его кодом написал свой позаимствовав некоторые моменты.
for (n=0; n<(rows*cols); n++) {
a[n] = document.createElement('input');

for (k=1; k<rows; k++) {
		if (n == rows*k)  document.getElementById('mytable').innerHTML += '<br />' ;
		}		
document.getElementById('mytable').appendChild(a[n]);

}


Часовой пояс GMT +3, время: 02:09.