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'; }
时间: 2023-06-24 19:03:08 浏览: 54
这是一个 JavaScript 函数,用于确认用户更改日期输入框中的值。当用户点击确认按钮时,该函数会获取到所在行的日期输入框和其对应的显示日期的 span 元素,然后将输入框中的值更新到 span 中,并且将输入框隐藏,将 span 显示出来。同时,将输入框中的值保存到其 data-value 属性中,以便后续使用。
相关问题
var row = selectId.parentNode.parentNode; var select = row.getElementById(selectId);
这段代码有错误。在JavaScript中,节点对象没有 `getElementById` 方法,只有 `document` 对象有这个方法。如果你想选择一个节点下的某个元素,可以使用 `querySelector` 或者 `querySelectorAll` 方法。
以下是修改后的代码:
```
var row = selectId.parentNode.parentNode;
var select = row.querySelector('#' + selectId);
```
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'; span.style.display = 'none'; // 隐藏之前添加的span元素 }执行时DOM元素没有加载到页面
如果该函数在页面加载完成之前被调用,则会出现该问题。为了避免这种情况,可以将该函数绑定到DOMContentLoaded事件上,以确保函数在页面完全加载后执行。例如:
```
document.addEventListener('DOMContentLoaded', function() {
function confirmChange(button) {
// 函数体...
}
});
```
另外,也可以将该函数放在一个单独的JavaScript文件中,并将其放在页面底部,以确保在DOM元素完全加载后才执行该函数。