点击按钮在表格中添加和删除行

2025年4月25日 | 阅读 4 分钟

通常,我们会在 HTML 中创建一个表格和一个按钮,然后使用 JavaScript 为按钮提供功能。但是,如果我们想创建一个动态表格,一个可以通过单击按钮来更改行数的表格呢?本教程将展示一种实现此目的的方法。

目标:我们将创建一个表格和两个按钮。表格的第一列将包含复选框。第一个按钮用于添加行,第二个按钮用于删除选中的行。

HTML部分

  1. 创建表
  2. 将第一列的单元格类型设置为复选框
  3. 设置标题
  4. 创建两个按钮 - **添加新行**和**删除选中的行**

这是代码

输出

Add and Delete rows of a table on button clicks

CSS 部分

此功能不需要特殊的 CSS,但让我们使用边框和一些属性添加一点颜色来查看表格。

代码

使用的属性

表格样式

属性说明
table_layout: fixed表格中所有单元格的布局保持固定(列宽),无论其中内容的长度如何。
border-spacing: 10px单元格边框之间的距离或间距。仅当 border-collapse 设置为 separate 时才适用。我们可以设置垂直和水平距离。
box-shadow为元素添加阴影。通过逗号分隔,我们可以为单个元素添加多个阴影。
border-radius使元素的角落边缘变圆。(为元素添加圆角)。值越大,圆角越圆。我们可以为四个角指定四个值。
background-color为元素的背景添加颜色。我们可以使用颜色名称或十六进制代码。
border一个用于为元素的边框添加宽度、样式和颜色的属性。

Button (按钮)

属性说明
padding在元素与其周围边框之间创建空间。使用 padding-top、padding-right、padding-bottom 和 padding-left,我们可以为元素的每个侧面设置间距。
border-radius使元素的角落边缘变圆。(为元素添加圆角)。值越大,圆角越圆。我们可以为四个角指定四个值。
hover: background-color使用 element:hover,我们可以为用户将光标悬停(移动)到元素上时添加一个属性。在这里,我们正在更改背景颜色。
color字体颜色。
active: tranform使用 element:active,我们可以为用户点击元素时为其添加一个属性。Transform 用于为元素添加 2D 效果。在这里,我们使用 scale()。此函数可以调整元素大小,然后恢复到原始大小。我们用它来获得按下时的按钮效果。

输出

Add and Delete rows of a table on button clicks

JavaScript 部分

现在是实际功能的时间了。我们需要编写两个函数,我们称它们为 `row()` 和 `del()`,分别对应两个按钮 - **添加新行**和**删除选中的行**。

代码

使用的函数和属性

函数/属性用途
Table.rows.length获取表格的行数
Table.insertRow(index)在指定的索引处插入一行
Row.insertCell(column)在指定的行中插入一个单元格
document.createElement("input")创建一个 HTML 元素,在本例中是输入字段。
checkbox.type = ""声明允许进入元素的类型。在此情况下,输入字段为复选框。
c1.appendChild(checkbox)将创建的元素设置到表格单元格中。
Table.rows[i].cells[0].children[0].checked检查复选框是否被选中。
Table.deleteRow(i)给定一个索引删除行。

机制

首先,我们使用 ID "mytable" 访问表格。然后,我们使用 `rows.length` 属性获取表格中现有的行数。接着,我们在表格的末尾索引处插入一个新行。我们使用 `c1`、`c2` 和 `c3` 来创建三个单元格。我们需要第一个单元格是复选框,接下来的两个是文本。因此,我们使用 `createElement("input")` 创建 HTML 元素,设置所需的类型,然后将其设置到单元格中。这是第一个函数。在第二个函数中,我们只需访问表格每一行的第一个单元格中的输入字段(复选框),然后在复选框被选中时删除该行。