RosettaCodeData/Task/Create-an-HTML-table/JavaScript/create-an-html-table-1.js

36 lines
1 KiB
JavaScript
Raw Normal View History

2023-07-01 11:58:00 -04:00
<html><head><title>Table maker</title><script type="application/javascript">
// normally, don't do this: at least name it something other than "a"
Node.prototype.a = function (e) { this.appendChild(e); return this }
function ce(tag, txt) {
2026-02-01 16:33:20 -08:00
var x = document.createElement(tag);
x.textContent = (txt === undefined) ? '' : txt;
return x;
2023-07-01 11:58:00 -04:00
}
function make_table(cols, rows) {
2026-02-01 16:33:20 -08:00
var tbl = ce('table', ''), tr = ce('tr'), th;
2023-07-01 11:58:00 -04:00
2026-02-01 16:33:20 -08:00
tbl.a(tr.a(ce('th')));
2023-07-01 11:58:00 -04:00
2026-02-01 16:33:20 -08:00
var z = 'Z'.charCodeAt(0);
for (var l = z - cols + 1; l <= z; l++)
tr.a(ce('th', String.fromCharCode(l)));
2023-07-01 11:58:00 -04:00
2026-02-01 16:33:20 -08:00
for (var r = 1; r <= rows; r++) {
tbl.a(tr = ce('tr').a(ce('th', r)));
for (var c = 0; c < cols; c++)
tr.a(ce('td', Math.floor(Math.random() * 10000)));
}
2023-07-01 11:58:00 -04:00
2026-02-01 16:33:20 -08:00
document.body
.a(ce('style',
'td, th {border: 1px solid #696;' +
'padding:.4ex} td {text-align: right }' +
'table { border-collapse: collapse}'))
.a(tbl);
2023-07-01 11:58:00 -04:00
}
</script></head>
<body><script>make_table(5, 4)</script></body></html>