HTML在现有4行的表格单元格里按回车键,当光标走到第四行最后一个单元格时再按回车键时,动态在当前表格下插入新行,并且在插入新行的单元格里按回车键,当光标走到插入的新行的最后一个单元格按回车键时,再动态在新行的下面插入一行的原生态js代码
时间: 2024-10-11 08:04:54 浏览: 35
要实现这样的功能,你可以使用JavaScript结合HTML事件监听器,尤其是键盘事件`onkeydown`。以下是基本的原生态JavaScript代码示例,它会在用户按下Enter键时动态添加新的表格行:
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>动态表格</title>
<style>
table {
width: 100%;
}
</style>
</head>
<body>
<table id="dynamicTable">
<!-- 初始化四行数据 -->
<tr><td>原始数据</td></tr>
<tr><td>原始数据</td></tr>
<tr><td>原始数据</td></tr>
<tr><td>原始数据</td></tr>
</table>
<script>
// 获取表格元素
const table = document.getElementById('dynamicTable');
// 添加事件监听器,监听键盘事件
table.addEventListener('keydown', function(event) {
if (event.key === 'Enter') {
// 当用户按下Enter,获取最后一行并添加新行
let lastRow = table.rows[table.rows.length - 1];
let newRow = table.insertRow(lastRow.rowIndex + 1);
// 将焦点移动到新插入的单元格,然后处理下一个Enter键
newRow.lastChild.focus();
newRow.lastChild.addEventListener('keydown', addAnotherRow);
} else if (event.target.tagName.toLowerCase() === 'td' && event.key === 'Enter') {
// 如果在单元格内按Enter,直接添加新行
addAnotherRow();
}
});
// 辅助函数,处理连续的Enter键添加行
function addAnotherRow(e) {
if (e && e.key === 'Enter') {
let newRow = this.parentNode.insertRow(this.parentNode.rowIndex + 1);
newRow.lastChild.focus();
}
}
</script>
</body>
</html>
```
上述代码会实现在现有表格的基础上动态插入行。当你在一个单元格内按两次Enter时,会依次在当前行下方插入新的一行。
阅读全文