function restoreDate(button) { // 修改 restoreDate函数,使其能够通过传入按钮对象获取所在行的日期选择器并恢复 var row = button.parentNode.parentNode; var input = row.cells[4].getElementsByTagName('input')[0]; input.style.display = 'inline-block'; input.inputedIndex = -1; var span = input.parentNode.getElementsByTagName('span')[0]; input.parentNode.removeChild(span); }

时间: 2023-06-18 10:05:53 浏览: 50
修改后的函数代码如下: ``` function restoreDate(button) { // 获取所在行 var row = button.parentNode.parentNode; // 获取该行的日期选择器 var input = row.querySelector('input[type="date"]'); // 恢复日期选择器 input.style.display = 'inline-block'; input.value = input.dataset.originalValue; // 移除提示信息 var span = input.parentNode.querySelector('span'); input.parentNode.removeChild(span); } ``` 修改点: 1. 使用 `querySelector` 方法获取日期选择器元素,简化代码。 2. 保存原始值的方式改为使用 `data-*` 属性保存。 3. 恢复日期选择器的值时,使用 `value` 属性设置。
相关问题

function addRow() {var cell5 = row.insertCell(4);cell5.innerHTML = '<input type="date" id="reDate" onchange="replaceDatePicker(this)">';unction replaceDatePicker(datePicker) { var value = datePicker.value; var span = document.createElement('span'); span.innerHTML = value; datePicker.parentNode.insertBefore(span, datePicker); datePicker.style.display = 'none'; datePicker.setAttribute('data-value', value); }function restoreDate(button) { // 获取所在行 var row = button.parentNode.parentNode; // 获取该行的日期选择器 var input = row.querySelector('input[type="date"]'); // 恢复日期选择器 input.style.display = 'inline-block'; input.value = input.getAttribute('data-value') // 移除提示信息 var span = input.parentNode.querySelector('span'); input.parentNode.removeChild(span); } 修改代码,点击确认按钮时执行replaceDatePicker,点击修改时执行restoreDate

请参考以下代码: ```html <table> <tr> <td>单元格1</td> <td>单元格2</td> <td>单元格3</td> <td>单元格4</td> <td>单元格5</td> <td>操作</td> </tr> <tr> <td>1</td> <td>2</td> <td>3</td> <td>4</td> <td><input type="date" id="reDate" onchange="replaceDatePicker(this)"></td> <td><button onclick="restoreDate(this)">修改</button> <button onclick="confirmChange(this)">确认</button></td> </tr> <tr> <td>5</td> <td>6</td> <td>7</td> <td>8</td> <td><input type="date" id="reDate" onchange="replaceDatePicker(this)"></td> <td><button onclick="restoreDate(this)">修改</button> <button onclick="confirmChange(this)">确认</button></td> </tr> </table> <script> function replaceDatePicker(datePicker) { var value = datePicker.value; var span = document.createElement('span'); span.innerHTML = value; datePicker.parentNode.insertBefore(span, datePicker); datePicker.style.display = 'none'; datePicker.setAttribute('data-value', value); } function restoreDate(button) { var row = button.parentNode.parentNode; var input = row.querySelector('input[type="date"]'); input.style.display = 'inline-block'; input.value = input.getAttribute('data-value'); var span = input.parentNode.querySelector('span'); input.parentNode.removeChild(span); } function confirmChange(button) { var row = button.parentNode.parentNode; var input = row.querySelector('input[type="date"]'); var span = input.parentNode.querySelector('span'); var value = input.value; span.innerHTML = value; input.setAttribute('data-value', value); input.style.display = 'none'; span.style.display = 'inline-block'; } </script> ``` 这段代码实现了一个包含表格、输入框和按钮的页面。在输入框中输入日期时,会调用 `replaceDatePicker` 函数,将输入框替换成一个 `span` 元素,并将输入框中的日期显示在 `span` 中。点击修改按钮时,会调用 `restoreDate` 函数,将 `span` 元素替换回输入框。点击确认按钮时,会调用 `confirmChange` 函数,将输入框中的日期更新到 `span` 中,并将输入框隐藏起来。

function replaceDate(input) { var date = input.value; var text = new Date(date).toLocaleDateString(); var span = document.createElement('span'); span.innerHTML = text; input.parentNode.insertBefore(span, input); input.style.display = 'none'; input.setAttribute('data-value', date); } function restoreDate(button) { // 获取所在行 var row = button.parentNode.parentNode; // 获取该行的日期选择器 var input = row.querySelector('input[type="date"]'); // 恢复日期选择器 input.style.display = 'inline-block'; input.value = input.dataset.originalValue; // 移除提示信息 var span = input.parentNode.querySelector('span'); input.parentNode.removeChild(span); }正确吗

这段代码看起来是有问题的。首先,函数`replaceDate`中的`input`参数应该是一个DOM元素,而不是一个包含值的对象。其次,在`restoreDate`函数中,`input.dataset.originalValue`没有被定义,应该使用`input.getAttribute('data-value')`来获取之前保存的值。

相关推荐

最新推荐

recommend-type

layer提示框添加多个按钮选择的实例

var index = layer.confirm&#40;'下载文件还是在线预览呢?', { btn: ['在线预览','下载',"关闭"], //按钮 shade: false //不显示遮罩 }, function(&#41;{ //关闭提示框 layer.close(index); }, function(){ ...
recommend-type

js获取对象,数组所有属性键值(key)和对应值(value)的方法示例

本文实例讲述了js获取对象,数组所有属性键值(key)和对应值(value)的方法。分享给大家供大家参考,具体如下: [removed] var values=function(object) { var values = []; for (var property in object) values....
recommend-type

js获取对象、数组的实际长度,元素实际个数的实现代码

js获取对象、数组的实际长度,元素实际个数的实现代码 /*获取对象、数组的长度、元素个数 *@param obj 要计算长度的元素,可以为object、array、string */ function count(obj){ var objType = typeof obj; if...
recommend-type

Pytorch 的损失函数Loss function使用详解

今天小编就为大家分享一篇Pytorch 的损失函数Loss function使用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
recommend-type

Sqlserver 自定义函数 Function使用介绍

主要介绍了Sqlserver 自定义函数 Function使用介绍,在sqlserver2008中有3中自定义函数:标量函数/内联表值函数/多语句表值函数,需要的朋友可以参考下
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

可见光定位LED及其供电硬件具体型号,广角镜头和探测器,实验设计具体流程步骤,

1. 可见光定位LED型号:一般可使用5mm或3mm的普通白色LED,也可以选择专门用于定位的LED,例如OSRAM公司的SFH 4715AS或Vishay公司的VLMU3500-385-120。 2. 供电硬件型号:可以使用常见的直流电源供电,也可以选择专门的LED驱动器,例如Meanwell公司的ELG-75-C或ELG-150-C系列。 3. 广角镜头和探测器型号:一般可采用广角透镜和CMOS摄像头或光电二极管探测器,例如Omron公司的B5W-LA或Murata公司的IRS-B210ST01。 4. 实验设计流程步骤: 1)确定实验目的和研究对象,例如车辆或机器人的定位和导航。
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。