原生 JS 与 ECMA 高级语法:实现表格添加与删除行及时间处理功能
好的,下面是一个使用原生JavaScript和ECMAScript高级语法实现的简单表格操作示例。这个示例包括添加行、删除行以及处理时间的功能。 首先,我们假设有一个HTML文件,其中包含一个表格和一个按钮用于添加新行: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Table Operations</title> </head> <body> <table id="dataTable" border="1"> <thead> <tr> <th>ID</th> <th>Name</th> <th>Date</th> <th>Actions</th> </tr> </thead> <tbody> <!-- Rows will be added here dynamically --> </tbody> </table> <button id="addRowBtn">Add Row</button> <script src="lib/dayjs.min.js"></script> <script src="script.js"></script> </body> </html> ``` 接下来是`script.js`文件的内容: ```javascript document.addEventListener('DOMContentLoaded', () => { const tableBody = document.querySelector('#dataTable tbody'); const addRowBtn = document.getElementById('addRowBtn'); let rowId = 1; // Starting ID for new rows // Function to create a new row const createRow = (id, name, date) => { const tr = document.createElement('tr'); tr.innerHTML = ` <td>${id}</td> <td>${name}</td> <td>${date}</td> <td><button class="deleteBtn">Delete</button></td> `; return tr; }; // Function to handle adding a new row const addRow = () => { const name = prompt('Enter name:'); if (!name) return; // If no name is entered, do nothing const date = dayjs().format('YYYY-MM-DD HH:mm:ss'); // Using dayjs to format the date const newRow = createRow(rowId++, name, date); tableBody.appendChild(newRow); }; // Event listener for the "Add Row" button addRowBtn.addEventListener('click', addRow); // Event delegation for delete buttons within the table body tableBody.addEventListener('click', (event) => { if (event.target.classList.contains('deleteBtn')) { if (confirm('Are you sure you want to delete this row?')) { const row = event.target.closest('tr'); tableBody.removeChild(row); } } }); }); ``` 解释: 1. HTML部分: - 创建了一个表格,包含表头和空的表体。 - 添加了一个按钮用于触发添加新行的操作。 - 引入了`dayjs`库来处理日期格式化。 - 引入了外部的`script.js`文件来编写JavaScript逻辑。 2. JavaScript部分: - 使用`DOMContentLoaded`事件确保在DOM完全加载后执行脚本。 - 定义了一些变量,如`tableBody`(表体元素)、`addRowBtn`(添加按钮)和`rowId`(行ID)。 - `createRow`函数用于创建新的表格行,并返回该行元素。 - `addRow`函数用于处理添加新行的逻辑,包括获取用户输入的名称和使用`dayjs`格式化当前日期。 - 为“Add Row”按钮添加点击事件监听器,当按钮被点击时调用`addRow`函数。 - 使用事件委托在表体上监听删除按钮的点击事件,如果确认删除则移除对应的行。 这样,你就可以通过点击“Add Row”按钮来动态添加新行,并通过点击“Delete”按钮来删除相应的行。 ######[AI写代码神器 | 1003点数解答 | 2024-11-12 15:33:09]
- Python 实现简易密码设置系统:多种功能交互与安全要点揭秘(字节豆包 | 286点数解答 | 2025-03-28 10:43:21)389
- C语言实现多功能密码设置系统:含代码及安全注意要点(字节豆包 | 414点数解答 | 2025-03-28 10:43:55)374
- C 语言实现:超简单密码设置系统,含代码与注意要点!(字节豆包 | 519点数解答 | 2025-03-28 12:42:02)414
- C语言实现密码管理系统:含功能代码与安全注意事项(字节豆包 | 409点数解答 | 2025-04-05 18:09:56)358
- C语言实现多功能密码系统:初始化、确认、设置、显示、重置与退出(字节豆包 | 454点数解答 | 2025-04-05 18:48:42)362
- C语言实现密码管理系统:含初始化、确认、设置、显示、重置及退出功能(字节豆包 | 413点数解答 | 2025-04-06 15:37:16)306
- C 语言实现密码管理系统:含初始化、确认、设置、显示、重置及退出功能(字节豆包 | 403点数解答 | 2025-04-06 15:37:54)318
- jQuery 实现动态操作 DOM:打造可增删任务的待办事项列表应用(百度文心 | 1015点数解答 | 2024-10-26 23:41:22)454
- jQuery 打造实用待办事项列表:输入添加、点击删除一步到位!(阿里通义 | 1139点数解答 | 2024-10-29 08:44:48)371
- jQuery 实现动态操作 DOM:打造带添加与删除功能的待办事项列表应用(阿里通义 | 687点数解答 | 2024-10-29 09:25:06)383
- jQuery 实战:打造可添加与删除任务的待办事项列表应用(字节豆包 | 499点数解答 | 2024-10-29 20:40:48)293
- "Debugging 'Cannot Read Properties of Null (reading \'userid\')' Error in Vue Components: Steps and Example"(讯飞星火 | 614点数解答 | 2024-11-28 14:31:57)293