整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

JavaScript的动态生成表格怎么写?

种动态创建元素的区别

  • document.write()
  • element.innerHTML
  • document.createElement()

区别

1.document.write是直接将内容写入页面的内容流,但是文档流执行完毕,则它会导致页面全部重绘

2.innerHTML是将内容写入某个DOM节点,不会导致页面全部重绘

3.innerHTML创建多个元素效率更高(不要拼接字符串,采取数组形式拼接),结构稍微复杂(innerHTML采取数组形式拼接会快一点比createElement()快)

4.createElement()创建多个元素效率稍低一点点,但是结构更清晰

总结:不同浏览器下,innerHTML效率要比creatElement高

动态生成表格案例分析

  1. 因为里面的学生数据都是动态的,我们需要js动态生成。这里我们模拟数据,自己定义好数据。数据我们采取对象形式存储。

2.所有的数据都是放到tbody里面的行里面。

3.因为行很多,我们需要循环创建多个行(对应多少人)

源码如下

效果图如下

数据密集型文档和网页中,复杂表格结构是必不可少的。它们帮助用户理解大量的信息和数据关系。本文将详细介绍复杂表格的设计要点,提供实用的例子,并展示如何使用HTML代码来创建这些表格。

复杂表格的设计要点

1. 清晰的层次结构

复杂表格应该有明确的层次结构,以便用户可以轻松地从总体到细节地阅读信息。这通常通过使用标题行和列来实现。

2. 一致的对齐

数据应该根据其类型进行对齐,例如,数字通常右对齐以便于比较,而文本则左对齐。

3. 合理的分隔

使用边框和底色来区分不同的行和列,以增强可读性。

4. 简洁的标注

对于包含复杂数据的表格,应该提供清晰的标注和脚注,以便用户理解数据的来源和含义。

表格实例与HTML代码

实例 1: 带有合并单元格的表格

这个表格显示了一个团队成员在上半年和下半年的表现评估。

<table border="1">
  <thead>
    <tr>
      <th rowspan="2">成员</th>
      <th colspan="2">上半年</th>
      <th colspan="2">下半年</th>
    </tr>
    <tr>
      <th>项目1</th>
      <th>项目2</th>
      <th>项目1</th>
      <th>项目2</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Alice</td>
      <td>良好</td>
      <td>优秀</td>
      <td>优秀</td>
      <td>良好</td>
    </tr>
    <tr>
      <td>Bob</td>
      <td>合格</td>
      <td>良好</td>
      <td>良好</td>
      <td>优秀</td>
    </tr>
  </tbody>
</table>

实例 2: 带有子标题的复杂表格

这个表格显示了一个公司季度财务报告的简化版本。

<table border="1">
  <thead>
    <tr>
      <th></th>
      <th>Q1</th>
      <th></th>
      <th>Q2</th>
      <th></th>
      <th>Q3</th>
      <th></th>
      <th>Q4</th>
      <th></th>
    </tr>
    <tr>
      <th>财务报告</th>
      <th>收入</th>
      <th>支出</th>
      <th>收入</th>
      <th>支出</th>
      <th>收入</th>
      <th>支出</th>
      <th>收入</th>
      <th>支出</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>2020年</td>
      <td>50</td>
      <td>30</td>
      <td>70</td>
      <td>40</td>
      <td>60</td>
      <td>50</td>
      <td>80</td>
      <td>60</td>
    </tr>
    <tr>
      <td>2021年</td>
      <td>55</td>
      <td>35</td>
      <td>75</td>
      <td>45</td>
      <td>65</td>
      <td>55</td>
      <td>85</td>
      <td>65</td>
    </tr>
  </tbody>
</table>

实例 3: 具有行跨度的表格

这个表格展示了不同设备对于特定功能的支持程度。

<table border="1">
  <thead>
    <tr>
      <th>功能</th>
      <th>支持的设备</th>
      <th>兼容性</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td rowspan="3">视频播放</td>
      <td>手机</td>
      <td>高</td>
    </tr>
    <tr>
      <td>平板</td>
      <td>高</td>
    </tr>
    <tr>
      <td>电脑</td>
      <td>中</td>
    </tr>
    <tr>
      <td rowspan="2">音频播放</td>
      <td>手机</td>
      <td>高</td>
    </tr>
    <tr>
      <td>智能音箱</td>
      <td>高</td>
    </tr>
    <tr>
      <td rowspan="2">文档编辑</td>
      <td>电脑</td>
      <td>高</td>
    </tr>
    <tr>
      <td>平板</td>
      <td>中</td>
    </tr>
  </tbody>
</table>

最佳实践

  • 简化设计:避免使用过多的装饰性元素,如阴影或渐变。
  • 数据可比性:确保相似性质的数据在表格中是可比较的。
  • 注释和说明:在表格下方提供必要的注释和数据来源说明。
  • 测试:在不同的设备和屏幕尺寸上测试表格的显示效果。

复杂表格结构是展示和理解多维数据的强大工具。通过遵循上述设计原则和实例,你可以创建清晰、有效的表格来提高你的数据呈现能力。

序列表和有序列表

用于呈现逻辑上并列的具有相关性的数据内容.

<ul>

<li></li>

</ul>

ul元素可以用type属性设置不同的列表标记:

disc: 实心圆点

circle: 空心圆圈

square: 实心正方形

<ol>

<li></li>

</ol>

ol元素也可以设置不同的标记:

1: 阿拉伯数字

i: 小写罗马数字

I: 大写罗马数字

A: 大写字母

a: 小写字母

定义列表

适用呈现包含主题及描述的数据内容.

<dl>

<dt>主题</dt>

<dd>描述</dd>

</dl>

表格

<table>

<thead>

<tr>

<th></th>

</tr>

</thead>

<tbody>

<tr>

<td></td>

</tr>

</tbody>

</table>

thead: 表头

tbody: 表体

tfoot: 表脚

th: 专用于表头中的单元格, 其具有自动加粗并且居中的效果.

表格的属性控制:

border: 边框

bordercolor: 边框颜色

width: 宽度

height: 高度

cellspacing: 单元格间距(外)

cellpadding: 单元格填充(内)

align: 表格的位置控制

单元格的属性控制:

align

valign

如何合并单元格/跨行或跨列?

<td rowspan="number" colspan="number">

注意: 合并后, 会引发单元格数量的减少!

列表练习案例源码:


<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title></title>

</head>

<body>

<h1>我的电脑文件列表</h1>

<ul>

<li>我的电脑

<ul>

<li>本地磁盘(C:)

<ul>

<li>我的文档</li>

<li>我的收藏</li>

</ul>

</li>

<li>本地磁盘(D:)

<ul>

<li>我的游戏</li>

<li>我的资料</li>

<li>我的电影</li>

</ul>

</li>

</ul>

</li>

</ul>

</body>

</html>