后端传来的数据,很大概率是一个List数组,我们必须用一个table组件,来打印这些数据。
在HTML中,table是常用组件之一,主要用来打印数组信息。
它的标签定义为:
组件顶级标签,用于定义组件,常用属性:
align:定义内部信息的排列,常使用center,表示中心。
border:定义单元之间的间隔,如果没有,那么就不太好看。
组件的列头标签,相当于列名。
在th标签里写的信息,就是列名。
组件的数据标签,数据在此展示。
一般来说,这里是动态展示的关键点。
属性:
id:标识组件,方便在函数中修改数据。
代码段、效果展示
<table align="center" border="1">
<th>用户idth>
<th>用户名th>
<th>用户消费th>
<tb><tr>
<td>1td>
<td>小明td>
<td>350td>
tr>
<tr>
<td>2td>
<td>小李td>
<td>202td>
tr>
<tr>
<td>3td>
<td>南极人td>
<td>3000td>
tr>tb>
table>
分割线
| 用户id | 用户名 | 用户消费 |
|---|---|---|
| 1 | 小明 | 350 |
| 2 | 小李 | 202 |
| 3 | 南极人 | 3000 |
在下面的tb标签中,加上id属性
<tb id="name">tb>
至此,我们就可以在script脚本中,使用document对象的方法getElementById,来得到tbody组件,旋即操作它。
假设,在HTML定义的页面中,有一按钮btn,我们为其设定点击onclick事件。
<script>
var btn = document.getElementById("btn");
btn.onclick = function(){
// 写调用后端的方法,我是用fetch演示的,也可以用ajax等。
fetch("http://127.0.0.1:8080/方法名", options).then(response => {
// 处理返回值,如果不用验证返回格式、返回数据量等信息,可以像我这样写
return response.json();
}).then(data => {
// 调用真正的方法
showData(data);
});
// 展示数据
function showData(data) {
var tb = document.getElementById("table_body");
// 清空原数据【innerHTML很重要的属性,待会讲】
tb.innerHTML="";
for (var i = 0; i < data.length; i++) {
const row = document.createElement('tr');
// innerHTML,里面存放的,就是这个组件中真正的HTML文本,不过要用``括号引注
row.innerHTML = `${data[i].realData} `;
tb.appendChild(row);
};
}
script>
原先的数据如下:

分割线
点击后得到的数据:

分割线
如果学习过Java,我们会知道类这个概念。
一个类里,会有属性、方法两种元素。
在浏览器中,一个组件,实际上可以理解为一个对象。
而innerHTML,就是这个对象的属性之一。
innerHTML属性,里面存放着HTML结构的文本。
<head id="h1">
<meta charset="utf-8">
<title>你好title>
head>
head组件的innerHTML属性,存放的值就是:
meta charset="utf-8">
<title>你好</title>
当修改innerHTML属性时,相当于覆盖原有数据。
我是蚊子码农,如有补充或者疑问,欢迎在评论区留言。个人的知识体系可能没有那么完善,希望各位多多指正,谢谢大家。