当前位置:实例文章 » HTML/CSS实例» [文章]Js: 读取数据并动态生成表格(读取新数据时,应该删除之前已经渲染出来的数据)

Js: 读取数据并动态生成表格(读取新数据时,应该删除之前已经渲染出来的数据)

发布人:shili8 发布时间:2025-01-16 20:00 阅读次数:0

**JS读取数据并动态生成表格**

在前端开发中,经常需要读取后台提供的数据,并根据这些数据动态生成表格。这种需求在数据展示、统计分析等方面非常普遍。在本文中,我们将介绍如何使用 JavaScript 来读取数据并动态生成表格。

###1. 数据准备首先,我们需要准备好要读取的数据。假设我们有一个 JSON 文件,包含了我们想要显示的数据:

json{
 "data": [
 {
 "id":1,
 "name": "John",
 "age":25 },
 {
 "id":2,
 "name": "Alice",
 "age":30 },
 {
 "id":3,
 "name": "Bob",
 "age":35 }
 ]
}

###2. 使用 XMLHttpRequest 或 fetch API读取数据我们可以使用 XMLHttpRequest 或 fetch API 来读取 JSON 文件中的数据。下面是示例代码:
javascript// 使用 XMLHttpRequestconst xhr = new XMLHttpRequest();
xhr.open('GET', 'data.json', true);
xhr.onload = function() {
 if (xhr.status ===200) {
 const data = JSON.parse(xhr.responseText);
 // 渲染表格 renderTable(data.data);
 }
};
xhr.send();

// 使用 fetch APIfetch('data.json')
 .then(response => response.json())
 .then(data => {
 // 渲染表格 renderTable(data.data);
 })
 .catch(error => console.error(error));

###3. 动态生成表格在渲染表格之前,我们需要定义一个函数来动态生成表格。我们可以使用 HTML 的 table 元素来实现这一点。
javascriptfunction renderTable(data) {
 const table = document.createElement('table');
 const thead = document.createElement('thead');
 const tbody = document.createElement('tbody');

 // 定义表头 const headers = ['ID', 'Name', 'Age'];
 headers.forEach(header => {
 const th = document.createElement('th');
 th.textContent = header;
 thead.appendChild(th);
 });

 // 渲染表格数据 data.forEach(item => {
 const tr = document.createElement('tr');
 Object.keys(item).forEach(key => {
 const td = document.createElement('td');
 td.textContent = item[key];
 tr.appendChild(td);
 });
 tbody.appendChild(tr);
 });

 table.appendChild(thead);
 table.appendChild(tbody);

 // 将表格添加到页面中 document.body.appendChild(table);
}

###4. 删除之前的数据当我们读取新数据时,我们需要删除之前已经渲染出来的数据。我们可以使用以下代码来实现这一点:
javascriptfunction deletePreviousData() {
 const table = document.querySelector('table');
 if (table) {
 table.remove();
 }
}

###5. 整合所有功能最后,我们需要将所有功能整合到一起。我们可以在一个函数中调用所有这些函数:
javascriptfunction renderTableWithData() {
 deletePreviousData();
 fetch('data.json')
 .then(response => response.json())
 .then(data => {
 renderTable(data.data);
 })
 .catch(error => console.error(error));
}

renderTableWithData();

通过以上步骤,我们可以实现读取数据并动态生成表格的功能。

其他信息

其他资源

Top