使用JavaScript动态创建和操作HTML表格

需积分: 10 8 下载量 183 浏览量 更新于2024-09-18 收藏 43KB DOC 举报
"这篇文档是关于使用JavaScript动态创建和处理HTML表格的教程。" 在Web开发中,JavaScript是一种常用的客户端脚本语言,用于增加网页的交互性和动态功能。在这个示例中,主要讨论了如何使用JavaScript来动态生成表格以及与表格相关的事件处理。下面将详细解释相关知识点: 1. **动态生成表格**: - JavaScript中的`document.createElement()`方法用于在DOM(文档对象模型)中创建新的HTML元素。在这个例子中,我们创建了一个新的`<table>`元素。 - `getElementById()`方法用于获取具有指定ID的HTML元素。在这个例子中,通过ID "tab" 获取已存在的表格元素,或者如果不存在,将会创建一个新的。 2. **清除表格内容**: - 使用`hasChildNodes()`方法检查元素是否包含子节点,即是否有子元素。 - `removeChild()`方法用于移除元素的最后一个子节点。在这里,它被用来清空现有表格的所有行。 3. **循环添加表格内容**: - 用一个`for`循环遍历变量`val`的值,这通常表示表格的行数。在这个例子中,`val`来自于`<select>`元素的选择值。 - 在循环内部,定义了几个变量如`price`、`height`、`stu`和`ret`,分别代表价格、身高选择框和学生、退休人员复选框。 4. **创建表格行和单元格**: - 使用`createElement`创建`<tr>`(表格行)和`<td>`(表格单元格)元素,并将它们添加到表格中。 - 在单元格中,添加了HTML代码,包括`<select>`和`<input type="checkbox">`,并绑定了点击事件处理函数`change()`。 5. **事件处理**: - `onclick`属性用于定义当用户点击元素时执行的JavaScript代码。在这个例子中,`change()`函数在选择不同的身高选项或勾选复选框时被调用,这可以用于更新表格数据或执行其他业务逻辑。 - `change()`函数的参数`k`传递了当前循环的索引,以便区分不同的行并进行相应操作。 6. **HTML实体引用**: - 在HTML字符串中,一些特殊字符如小于号 `<` 和大于号 `>` 需要使用实体引用(如`<`和`>`)来避免被解析为HTML标签。 7. **DOM操作**: - 将新创建的元素添加到DOM中,通常使用`appendChild()`方法。虽然示例中没有直接展示,但这个过程应该在循环结束后完成,将所有新创建的行添加到表格中。 这段代码展示了如何使用JavaScript动态生成HTML表格,以及如何在表格中添加交互性元素,并处理用户的输入。这在构建动态网页,尤其是处理数据展示和用户输入时非常有用。

summary={ () => ( <> <ProTable.Summary.Row className='total' style={{textAlign: 'center'}}> {/* 合计行内容 */} <ProTable.Summary.Cell colSpan={2} index={0} >总计</ProTable.Summary.Cell> <ProTable.Summary.Cell index={2}>{summaryData && summaryData.batteryOperationCabinetTotal}</ProTable.Summary.Cell> <ProTable.Summary.Cell index={3}>{summaryData && summaryData.batteryOperationUserBindingTotal}</ProTable.Summary.Cell> <ProTable.Summary.Cell index={4}>{summaryData && summaryData.batteryOperationBLeasingTotal}</ProTable.Summary.Cell> <ProTable.Summary.Cell index={5}>{summaryData && summaryData.batteryOperationChannelTotal}</ProTable.Summary.Cell> <ProTable.Summary.Cell index={6}>{summaryData && summaryData.batteryOperationSumTotal}</ProTable.Summary.Cell> <ProTable.Summary.Cell index={7}>{summaryData && summaryData.batteryMaintainWarehouseTotal}</ProTable.Summary.Cell> <ProTable.Summary.Cell index={8}>{summaryData && summaryData.batteryMaintainFactoryTotal}</ProTable.Summary.Cell> <ProTable.Summary.Cell index={9}>{summaryData && summaryData.batteryMaintainSumTotal}</ProTable.Summary.Cell> <ProTable.Summary.Cell index={10}>{summaryData && summaryData.batteryRetireScrapTotal}</ProTable.Summary.Cell> <ProTable.Summary.Cell index={11}>{summaryData && summaryData.batteryRetireBuyBackTotal}</ProTable.Summary.Cell> <ProTable.Summary.Cell index={12}>{summaryData && summaryData.batteryRetireSumTotal}</ProTable.Summary.Cell> <ProTable.Summary.Cell index={13}>{summaryData && summaryData.batteryLibrarySumTotal}</ProTable.Summary.Cell> <ProTable.Summary.Cell index={14}>{summaryData && summaryData.batteryCountedSumTotal}</ProTable.Summary.Cell> <ProTable.Summary.Cell index={15}>{summaryData && summaryData.batteryStatusSumTotal}</ProTable.Summary.Cell> <ProTable.Summary.Cell index={16}>{summaryData && summaryData.batteryAvailability}</ProTable.Summary.Cell> </ProTable.Summary.Row> </> )} 这段代码怎么通过遍历对象转成可读性更高的代码

2023-07-16 上传