<table>
& for
циклы
Если вы хотите сгенерировать <table>
с циклом for
, вы должны использовать два цикла for
- первый цикл для строк, а второйЦикл для ячеек для каждой строки.Следующая демонстрация имеет следующее:
- A
<form>
, который имеет: - An
<input>
для ввода количества строк. - An
<input>
для ввода количества ячеек в строке. - кнопка для запуска события щелчка, вызывающего функцию
generateTable()
.
<form>
и все его формыэлементы управления доступны с помощью API HTMLFormControlsCollection . - Методы
.insertRow()
и .insertCell()
автоматически создаст элемент и добавит его.
<form>
и все, что с ним связано, не является обязательным, конечно, он просто добавлен в демонстрационных целях.Циклы можно использовать отдельно, просто присваивая номера переменным rowQty
и celQty
.
Demo
/*
Optional
*/
var ui = document.forms[0].elements;
var btn = ui.btn;
btn.onclick = generateTable;
/*
Required
*/
function generateTable(e) {
var table = document.getElementById('T0');
/*
if used without the <form>
replace the next two lines with:
*/
//var rowQty = {any integer}
//var celQty = {any integer 2 or greter}
var rowQty = ui.rowData.value;
var celQty = ui.celData.value;
for (let i = 0; i < rowQty; i++) {
var tr = table.insertRow(i);
for (let j = 0; j < celQty; j++) {
var td = tr.insertCell(j);
if (j === 0) {
td.textContent = i + 1;
} else if (j === 1) {
td.textContent = "500";
} else {
td.textContent = " ";
}
}
}
}
table {
border-collapse: collapse;
table-layout: fixed;
}
table,
td {
border: 1px solid #000;
text-align: right;
}
td {
min-width: 3ch;
max-width: 150px;
}
td:first-of-type {
width: 3ch;
text-align: center;
}
input {
display: inline-block;
text-align: center;
width: 5ch;
}
<!-- Optional -->
<form id='ui'>
<label for='rowData'>Rows: </label>
<input id='rowData' type='number' min='1' max='10' value='1'>
<label for='celData'>Cells per Row: </label>
<input id='celData' type='number' min='2' max='10' value='2'>
<button id='btn' type='button'>GO</button>
</form>
<!-- Required -->
<table id='T0'></table>