在网页开发中,动态添加和删除表格行是常见的交互功能,尤其在数据管理或表单填写场景中。本文将详细讲解如何使用JavaScript实现这一功能。 我们需要一个HTML表格作为基础,这里有一个简单的表格结构: ```html <table width="600px" border="1" cellpadding="0" cellspacing="0" id="myTab"> <tr> <td width="40px" class="top-bt liebiao-c" align="center">操作</td> <td width="40px" class="top-bt liebiao-c" align="center">序号</td> <td class="top-bt liebiao-c" align="center">节点名称</td> <td width="80px" class="top-bt liebiao-c" align="center">节点比例</td> </tr> </table> ``` 此表格包含四列,分别用于显示操作、序号、节点名称和节点比例。接下来,我们将添加两个按钮,一个用于增加行,一个用于删除行: ```html <input type="button" name="xx" onclick="addNewRow();" value="增加一行" /> <input type="button" name="yy" onclick="removeRow();" value="删除一行" /> ``` 现在,我们需要定义JavaScript函数来处理这两个按钮的点击事件。首先是`addNewRow()`函数,它负责在表格末尾插入新的一行,并为每一列填充相应的输入元素: ```javascript function addNewRow() { var tabObj = document.getElementById("myTab"); // 获取表格元素 var rowsNum = tabObj.rows.length; // 获取当前行数 var colsNum = tabObj.rows[rowsNum - 1].cells.length; // 获取行的列数 var myNewRow = tabObj.insertRow(rowsNum); // 插入新行 var newTdObj1 = myNewRow.insertCell(0); newTdObj1.innerHTML = "<input type='checkbox' name='chkArr' id='chkArr" + rowsNum + "' style='width:20px' />"; var newTdObj2 = myNewRow.insertCell(1); newTdObj2.innerHTML = "<input type='text' name='nodecode' id='nodecode" + rowsNum + "' style='width:40px' value='" + rowsNum + "'/>"; var newTdObj3 = myNewRow.insertCell(2); newTdObj3.innerHTML = "<input type='text' name='nodename' id='nodename" + rowsNum + "' style='width:120px' />"; var newTdObj4 = myNewRow.insertCell(3); newTdObj4.innerHTML = "<input type='text' name='nodeper' id='nodeper" + rowsNum + "' style='width:60px' />"; } ``` 在这个函数中,我们通过`insertRow()`方法向表格添加新行,并使用`insertCell()`方法插入新的单元格。每个单元格的内容是不同的输入元素,如复选框(用于选择要删除的行)和文本输入框。 接着是`removeRow()`函数,它用于删除被选中的行: ```javascript function removeRow() { var chkObj = document.getElementsByName("chkArr"); // 获取所有复选框 var tabObj = document.getElementById("myTab"); // 获取表格元素 for (var k = 0; k < chkObj.length; k++) { if (chkObj[k].checked) { // 如果复选框被选中 tabObj.deleteRow(k + 1); // 删除对应的行 k = -1; // 由于删除了行,需要重新遍历 } } } ``` 这个函数首先获取所有名为`chkArr`的复选框,然后遍历它们。如果找到一个被选中的复选框,就使用`deleteRow()`方法删除其对应的行。注意,由于数组索引会在删除行后改变,所以需要在删除行后将索引重置为-1,以便重新开始遍历。 通过以上代码,我们就实现了动态添加和删除表格行的功能。用户可以通过点击“增加一行”按钮向表格添加新的数据行,也可以通过勾选复选框并点击“删除一行”按钮来移除选定的行。这个功能在需要用户输入多条数据的网页应用中非常实用,提高了用户体验。
- 粉丝: 5
- 资源: 958
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C#ASP.NET手机端H5会议室预约系统源码 手机版会议室预约源码数据库 SQL2008源码类型 WebForm
- 技术资料分享ATK-HC05-V11用户手册-V1.00很好的技术资料.zip
- 技术资料分享ATK-HC05-V11-SCH很好的技术资料.zip
- C语言《基于51单片机的智能循迹小车,包含黑线循迹、超声波避障、红外线遥控3大功能》+项目源码+文档说明+智能小车总结报告
- 网页开发课程大作业-以手机为主体的信息查询平台.zip,类似手机信息平台有各种手机信息,含登录,导航栏,轮播图,动态特效,搜索栏
- (源码)基于ParticleTracker框架的传感器浮标系统.zip
- 基于STM32CUBEMX驱动TOF模块VL53l0x(1)-单模块距离获取的最佳实践
- 020-基于springboot+vue的电影院购票系统(源码+数据库脚本+文档说明+LW)
- (源码)基于SpringBoot和Vue的批发零售管理系统.zip
- (源码)基于Arduino平台的NanoLambdaNSP32光谱传感器管理系统.zip