zoukankan      html  css  js  c++  java
  • jQuery可以编辑的表格

    html部分很简单

    <body>
            <table>
                <thead>
                    <tr>
                        <th colspan="2">鼠标点击表格项就可以编辑</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <th>学号</th>
                        <th>姓名</th>
                    </tr>
                    <tr>
                        <td>000001</td>
                        <td>张三</td>
                    </tr>
                    <tr>
                        <td>000002</td>
                        <td>李四</td>
                    </tr>
                    <tr>
                        <td>000003</td>
                        <td>王五</td>
                    </tr>
                    <tr>
                        <td>000004</td>
                        <td>赵六</td>
                    </tr>
                </tbody>
            </table>
        </body>

    css也比较简单

    *{margin:0px;padding:0px;}
    table{
        border:1px solid black;
        margin:0 auto;
        border-collapse:collapse;
        width:400px;
    }
    table td{border:1px solid black;width:50%;}
    table th{border:1px solid black;width:50%;}
    tbody th{background-color:#A3BAE7;}

    最主要的是jQuery部分,其主要思路是:

    当鼠标点击单元格的时候触发事件,该事件会在单元格中添加一个输入框input,这样就可以输入相应的文字了

    $(function(){
        //找到表格的内容区域中所有的奇数行,并设置不同颜色
        $("tbody tr:even").css("background-color","#ECE9D8");
    
        //找到所有的学号单元格
        var numTd = $("tbody td:even");
        //给这些单元格注册鼠标点击的事件
        numTd.click(function() {    
            //找到当前鼠标点击的td,this对应的就是响应了click的那个td
            var tdObj = $(this);
            if (tdObj.children("input").length > 0) {
                //当前td中input,不执行click处理
                return false;
            }
            var text = tdObj.html(); 
            //清空td中的内容
            tdObj.html("");
            //1.创建一个文本框 2.去掉文本框的边框 3.设置文本框中的文字字体大小是16px 
            //4.使文本框的宽度和td的宽度相同 5.设置文本框的背景色
            //6.需要将当前td中的内容放到文本框中 7.将文本框插入到td中
            var inputObj = $("<input type='text'>").css("border-width","0")
                .css("font-size","16px").width(tdObj.width())
                .css("background-color",tdObj.css("background-color"))
                .val(text).appendTo(tdObj);
            //是文本框插入之后就被选中
            inputObj.trigger("focus").trigger("select");
            inputObj.click(function() {
                return false;
            });
            //处理文本框上回车和esc按键的操作
            inputObj.keyup(function(event){
                //获取当前按下键盘的键值
                var keycode = event.which;
                //处理回车的情况
                if (keycode == 13) {
                    //获取当当前文本框中的内容
                    var inputtext = $(this).val();
                    //将td的内容修改成文本框中的内容
                    tdObj.html(inputtext);
                }
                //处理esc的情况
                if (keycode == 27) {
                    //将td中的内容还原成text
                    tdObj.html(text);
                }
            });
        });
    });
  • 相关阅读:
    现状和措施
    Nginx http升级到https
    搭建 git 服务器
    Vue + Springboot 开发的简单的用户管理系统
    Vue中的button事件
    Mvc多级Views目录 asp.net mvc4 路由重写及 修改view 的寻找视图的规则
    asp.net mvc 多级目录结构
    Asp.net下使用HttpModule模拟Filter,实现权限控制
    JavaScript事件冒泡简介及应用
    Rhino Mock
  • 原文地址:https://www.cnblogs.com/JoannaQ/p/2678114.html
Copyright © 2011-2022 走看看