JavaScript 如何创建动态表格

JavaScript 如何创建动态表格

动态表格是根据运行时接收到的输入的行数而变化的表格。某些网站或在线程序(如企业网站)在添加数据或信息时需要动态创建表格。这可以实现,因为JavaScript是一种使用动态类型的编程语言。

要在JavaScript中创建动态表格,可以按照以下步骤进行:

1. 创建一个HTML元素,用于显示表格。例如,创建一个带有id属性的div元素,在JavaScript代码中引用它:

<div id="table-container"></div>

2. 在你的 JavaScript 代码 中定义一个 数组 ,其中包含你想要在表格中显示的数据。例如:

const data = [
{ name: 'John', age: 30, email: 'john@example.com' },
{ name: 'Jane', age: 25, email: 'jane@example.com' },
{ name: 'Bob', age: 40, email: 'bob@example.com' }
];

3. 创建一个函数根据数据数组生成表格 HTML标记 的方法。例如:

function generateTable(data) {
let table = '<table>';
table += '<tr><th>Name</th><th>Age</th><th>Email</th></tr>';
data.forEach(item => {
table += `<tr><td>{item.name}</td><td>{item.age}</td><td>${item.email}</td></tr>`;
});
table += '</table>';
return table;
}

4. 使用数据数组调用generateTable函数,并将生成的HTML标记追加到表格容器元素中。例如:

consttableContainer = document.getElementById('table-container');
tableContainer.innerHTML = generateTable(data);

5. 可选的,你可以使用 CSS样式化 表格,使其更加具有视觉吸引力。例如:

table {
border-collapse: collapse;
width: 100%;
}

th, td {
border: 1px solid #ddd;
padding: 8px;
text-align: left;
}

th {
background-color: #4CAF50;
color: white;
}

就是这样!现在您拥有一个可以根据需要更新新数据的 动态表格

示例

这是另一个使用用户输入生成动态表格的示例。

<!DOCTYPE html>
<html>
<head>
<title>Dynamic Table Example</title>
<style>
table {
border-collapse: collapse;
width: 100%;
}

th, td {
border: 1px solid #ddd;
padding: 8px;
text-align: left;
}

th {
background-color: #4CAF50;
color: white;
}
</style>
</head>
<body>
<div>
<label for="rows">Number of Rows:</label>
<input type="number" id="rows" name="rows" value="3">
<label for="cols">Number of Columns:</label>
<input type="number" id="cols" name="cols" value="3">
<button onclick="generateTable()">Generate Table</button>
</div>
<div id="table-container"></div>

<script>
function generateTable() {
const rows = document.getElementById('rows').value;
const cols = document.getElementById('cols').value;
let table = '<table>';
for (let i = 0; i< rows; i++) {
table += '<tr>';
for (let j = 0; j < cols; j++) {
table += `<td>Row {i + 1}, Column{j + 1}</td>`;
}
table += '</tr>';
}
table += '</table>';
consttableContainer = document.getElementById('table-container');
tableContainer.innerHTML = table;
}
</script>
</body>
</html>

输出

JavaScript 如何创建动态表格

解释:

这段代码生成一个 输入表单 ,用户可以在表单中指定表格中想要的 行数列数 。用户点击 “生成表格” 按钮后,将调用 generateTable()函数 。这个函数会获取用户输入的值,根据指定的 行数列数 生成一个 HTML表格 ,并将表格插入 table-container元素 中。

注意:- 这个示例不使用 数据数组 ,而是使用 循环 动态生成表格内容。您可以根据需要修改循环逻辑以生成不同的表格内容。

示例:

这里是另一个示例,它使用来自 外部API 的数据生成一个动态表格。

<!DOCTYPE html>
<html>
<head>
<title>Dynamic Table Example</title>
<style>
table {
border-collapse: collapse;
width: 100%;
}

th, td {
border: 1px solid #ddd;
padding: 8px;
text-align: left;
}

th {
background-color: #4CAF50;
color: white;
}
</style>
</head>
<body>
<div id="table-container"></div>

<script>
async function generateTable() {
try {
const response = await fetch('https://jsonplaceholder.typicode.com/users');
const data = await response.json();
let table = '<table>';
table += '<tr><th>Name</th><th>Email</th><th>Phone</th></tr>';
data.forEach(item => {
table += `<tr><td>{item.name}</td><td>{item.email}</td><td>${item.phone}</td></tr>`;
});
table += '</table>';
consttableContainer = document.getElementById('table-container');
tableContainer.innerHTML = table;
} catch (error) {
console.error(error);
}
}

generateTable();
</script>
</body>
</html>

输出

姓名 邮箱 电话
Leanne Graham stash 1-770-736-8031 x56442
Ervin Howell stash 010-692-6593 x09125
Clementine Bauch stash 1-463-123-4447
Patricia Lebsack stash 493-170-9623 x156
Chelsey Dietrich stash (254)954-1289
Mrs. Dennis Schulist stash 1-477-935-8478 x6430
Kurtis Weissnat stash 210.067.6132
Nicholas Runolfsdottir V stash 586.493.6943 x140
Glenna Reichert stash (775)976-6794 x41206
Clementina DuBuque stash 024-648-3804

说明:

此代码使用 fetch() 方法外部API (https://jsonplaceholder.typicode.com/users) 中检索数据。API 返回一个用户对象数组,用于生成一个带有三列 (姓名,电子邮件和电话)HTML 表格 。使用 async/await 语法 来处理 fetch() 方法 的异步性质。

请注意:在此示例中,当页面加载时会自动调用 generateTable() 函数,因此无需用户输入即可生成表格。您可以修改 API 端点以检索不同的数据,表格的 列 和内容将相应更新。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程