在JavaScript中,点击表格单元格(<td>
)并将其转换为输入框(<input>
)是一种常见的交互模式,用于允许用户直接编辑表格内容。这种功能通常通过事件监听和DOM操作来实现。
以下是一个简单的示例,展示了如何实现点击表格单元格变成输入框的功能:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Editable Table</title>
<style>
table {
width: 100%;
border-collapse: collapse;
}
th, td {
border: 1px solid #ddd;
padding: 8px;
text-align: left;
}
th {
background-color: #f2f2f2;
}
</style>
</head>
<body>
<table id="editableTable">
<tr>
<th>Name</th>
<th>Age</th>
</tr>
<tr>
<td>John Doe</td>
<td>30</td>
</tr>
<tr>
<td>Jane Smith</td>
<td>25</td>
</tr>
</table>
<script>
document.addEventListener('DOMContentLoaded', function() {
const table = document.getElementById('editableTable');
table.addEventListener('click', function(event) {
const target = event.target;
if (target.tagName === 'TD') {
const input = document.createElement('input');
input.type = 'text';
input.value = target.textContent;
target.textContent = '';
target.appendChild(input);
input.focus();
input.addEventListener('blur', function() {
target.textContent = input.value;
});
input.addEventListener('keypress', function(e) {
if (e.key === 'Enter') {
input.blur();
}
});
}
});
});
</script>
</body>
</html>
focus()
方法。blur
事件,并在事件处理程序中更新单元格内容。keypress
事件,并在按下回车键时触发失去焦点事件。通过以上方法,可以有效实现点击表格单元格变成输入框的功能,并解决常见的交互问题。
没有搜到相关的文章