html table+css实现可编辑表格

要实现可编辑的 HTML 表格,你可以使用 JavaScript 和 HTML5 的 contenteditable 属性。

<!DOCTYPE html>
<html>
<head>
    <style>
        table {
            border-collapse: collapse;
            width: 100%;
        }
        
        th, td {
            border: 1px solid black;
            padding: 8px;
            text-align: left;
        }
    </style>
</head>
<body>
    <table id="editableTable">
        <thead>
            <tr>
                <th>Name</th>
                <th>Age</th>
                <th>Gender</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td contenteditable="true">John Doe</td>
                <td contenteditable="true">25</td>
                <td contenteditable="true">Male</td>
            </tr>
            <tr>
                <td contenteditable="true">Jane Smith</td>
                <td contenteditable="true">30</td>
                <td contenteditable="true">Female</td>
            </tr>
            <!-- 添加更多行 -->
        </tbody>
    </table>

    <script>
        // 获取可编辑表格
        var table = document.getElementById('editableTable');
        
        // 遍历表格,为每个单元格添加事件侦听器
        for (var i = 0; i < table.rows.length; i++) {
            for (var j = 0; j < table.rows[i].cells.length; j++) {
                table.rows[i].cells[j].addEventListener('input', function () {
                    // 处理输入事件,可以在此处进行逻辑处理或保存数据
                    console.log(this.textContent);
                });
            }
        }
    </script>
</body>
</html>

在上述示例中,使用了 contenteditable 属性来使表格单元格可编辑。添加 contenteditable="true" 属性的单元格可以被鼠标点击并接受用户输入。

JavaScript 部分遍历表格的所有单元格,并为每个单元格添加输入事件侦听器。在输入事件处理程序中,你可以根据需要处理用户的输入,比如更新数据或触发其他操作。

点击表格前:

点击表格后:

  • 18
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
vxe-table是一个基于Vue.js的表格组件库,可以实现表格的展示、排序、筛选等功能。要实现可编辑的功能,需要在vxe-table中配置一些参数和方法。以下是实现可编辑的步骤: 1. 首先,在Vue组件中引入vxe-table,并按照文档的说明进行安装和配置。 2. 在表格中的每一列中,可以通过设置`edit-render`属性指定编辑单元格时使用的渲染器。可以使用内置的渲染器,如`input`、`textarea`等,也可以自定义渲染器。 3. 在data中定义表格的数据源,并为每一行数据添加一个`_rowId`属性,用于标识每一行数据的唯一ID。 4. 在methods中定义一个方法,用于编辑单元格时触发的事件,可以在该方法中获取到编辑的值和所在行的唯一ID。 5. 在表格组件中,通过设置`@cell-click`事件监听单元格的点击事件,并在事件处理函数中调用定义的编辑方法。 下面是一个简单的示例代码: ```vue <template> <div> <vxe-table :data="tableData" :edit-config="{ trigger: 'click', mode: 'cell' }" @cell-click="handleCellClick" > <vxe-table-column type="index" title="序号"></vxe-table-column> <vxe-table-column field="name" title="姓名" :edit-render="{ name: 'input' }"></vxe-table-column> <vxe-table-column field="age" title="年龄" :edit-render="{ name: 'input' }"></vxe-table-column> </vxe-table> </div> </template> <script> import 'xe-utils' import VXETable from 'vxe-table' import 'vxe-table/lib/style.css' export default { data() { return { tableData: [ { _rowId: 1, name: '张三', age: 18 }, { _rowId: 2, name: '李四', age: 20 }, { _rowId: 3, name: '王五', age: 22 } ] } }, methods: { handleCellClick({ row, column }) { // 获取编辑的值和所在行的唯一ID const { value } = column.editRender.cellRender.props const { _rowId } = row console.log('编辑的值:', value) console.log('所在行的唯一ID:', _rowId) } }, mounted() { VXETable.use(VXETable) this.$nextTick(() => { VXETable.setup({ version: 0, i18n: key => globalThis.$t(`vxe.${key}`) }) }) } } </script> ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xingdiango

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值