为了实现一个使用jQuery(非HTML5原生内容可编辑属性)的可编辑表格,我们可以使用jQuery来监听表格单元格(`
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>可编辑表格示例</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<style>
table, th, td {
border: 1px solid black;
border-collapse: collapse;
}
th, td {
padding: 10px;
}
</style>
</head>
<body>
<table id="editableTable">
<tr>
<th>姓名</th>
<th>年龄</th>
<th>职业</th>
</tr>
<tr>
<td>张三</td>
<td>30</td>
<td>软件工程师</td>
</tr>
<tr>
<td>李四</td>
<td>25</td>
<td>设计师</td>
</tr>
</table>
<script>
$(document).ready(function() {
$('#editableTable td').click(function() {
// 切换单元格的 contenteditable 属性
$(this).prop('contenteditable', true).focus();
// 失去焦点时保存更改(可选,根据需求实现)
$(this).blur(function() {
// 这里可以添加代码来处理数据保存,例如发送到服务器
// 示例:console.log($(this).text());
// 重置 contenteditable 属性以关闭编辑
$(this).prop('contenteditable', false);
});
});
});
</script>
</body>
</html>
这段代码首先通过jQuery监听表格中所有`
此外,我还添加了一个可选的`blur`事件处理器,它会在单元格失去焦点时触发。你可以在这个事件处理器中添加逻辑来处理数据保存,比如将更改后的数据发送到服务器。在这个示例中,我只是简单地打印了更改后的文本到控制台,并重置了`contenteditable`属性以关闭编辑状态。
请注意,这个示例没有使用HTML5的`contenteditable`属性直接在HTML标签中声明,而是通过jQuery动态地控制该属性,这符合您的要求。