I'm trying to recreate this budget table (see link above). Right now, I can't figure out how to get the table to generate everything when the page loads. I'm also confused as to how to write a loop that'll get each row to show with their header along with the cell value showing as 0. I've only been able to get the array tableHeader to show. Below is what I've done so far:
window.addEventListener('load', function() {
let tableHeader = ["Allocated", "July", "August", "September", "October", "November", "December", "January",
"Feburary", "March", "April", "May", "June", "Expense", "Balance", "Percent Spent"
];
let tableRow = ["Salaries:", "Fringe: ", "Booking: ", "Legal Fees:", "Rent:",
"Utilities:", "Telephone:", "Postage:", "Contractual Services", "Materials & Supplies:",
"Travel:", "Other:", "Subtotal:", "Total:"
];
let arr = [0, 0, 0, 0,
0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0
];
//Creation of HTML table
let table = document.createElement('table');
let tableHead = document.createElement('thead');
let rowHead = document.createElement('tr');
table.appendChild(tableHead);
tableHead.appendChild(rowHead)
for (i = 0; i < tableHeader.length; i++) {
let cellHeader = document.createElement('th');
cellHeader.innerHTML = tableHeader[i]
rowHead.appendChild(cellHeader)
}
function createTableBody(arr, tableRow) {
let tableBody = document.createElement('tbody');
let bodyRow = document.createElement('tr'); // Header row for TableRow array
for (let j = 0; j < tableRow.length; j++) {
let th = document.createElement('th'); //column for TableRow array
let text = document.createTextNode(tableRow[j]); //cell
tableBody.appendChild(th);
bodyRow.appendChild(text);
}
let tr = document.createElement('tr');
for (let l = 0; l < arr.length; l++) {
let td = document.createElement('td'); //column
let text = document.createTextNode(arr[l]); //cell
td.appendChild(text);
tr.appendChild(td);
}
tableBody.appendChild(tr);
}
document.getElementById("tableDiv").appendChild(table);
document.getElementById("tableDiv").appendChild(tableBody);
});
th {
border: 1px solid black;
padding: 5px;
}
table {
border-collapse: collapse;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div id="tableDiv"></div>
<script src="budget.js"></script>
</body>
</html>
Comments
Post a Comment