table双击td能修改内容

此篇提供给需要的人。

说实话一般的前端框架的话都会自带这个功能,但是我也懒得去翻,自己手工写个,以后要用直接调用就OK了。

自己做的成果还是挺爽的。

废话不多说,上源码。

我们先引入jQuery:

<script type="text/javascript" src="js/jquery-2.1.1.js" ></script>

PS:注意这个js引入的是我下载好的jQuery。没有的话百度搜个

首先是css样式:

*{margin: 0;padding: 0;}
        .table{
            margin: auto;
            border-collapse:collapse;
        }
        .table th,.table td{
            padding: 5px 20px;
            width: 100px;
            max-width: 100px;
            height:30px ;
            border: 1px solid #D3D3D3;
        }
        .table-td input{
            width: 100px;
            border: 0px solid #ccc; 
            padding: 7px 0px;
            border-radius: 3px; /*css3属性IE不支持*/
        }
        .table-input{
            width: 100%;
            text-align: center;
            overflow: hidden;
            text-overflow: ellipsis;/*溢出隐藏*/
            white-space: nowrap;/*以省略号...显示*/
            position: relative;
            z-index: 1;
        }
        .table-tr{
            background-color: #8A6DE9;
        }
        table .tbody-tr:hover .table-td{
            cursor: pointer;/*变手型*/
            background: rgba(0,0,0,0.1);
        }
        #td_alert{
            width:90px;
            height:40px;
            font-size: 16px;
            text-align: center;
            color: #fff;
            background: rgba(0,0,0,0.2);/*弹框透明*/
            border-radius: 10px;/*边框圆角*/
            position: fixed; 
            top:50%;
            left:50%;
            line-height: 40px;
        }

然后内容:

<table class="table">
            <tr class="table-tr">
                <th>ID</th>
                <th>名称</th>
                <th>爱好</th>
                <th>性别</th>
            </tr>
            <tr class="tbody-tr">
                <td class="table-td">
                    <div class="table-input">1</div>
                </td>
                <td class="table-td">
                    <div class="table-input">张三</div>
                </td>
                <td class="table-td">
                    <div class="table-input">运动</div>
                </td>
                <td class="table-td">
                    <div class="table-input">男</div>
                </td>
            </tr>
            <tr class="tbody-tr">
                <td class="table-td">
                    <div class="table-input">2</div>
                </td>
                <td class="table-td">
                    <div class="table-input">李四</div>
                </td>
                <td class="table-td">
                    <div class="table-input">打游戏</div>
                </td>
                <td class="table-td">
                    <div class="table-input">男</div>
                </td>
            </tr>
            <tr class="tbody-tr">
                <td class="table-td">
                    <div class="table-input">3</div>
                </td>
                <td class="table-td">
                    <div class="table-input">王五</div>
                </td>
                <td class="table-td">
                    <div class="table-input">听歌</div>
                </td>
                <td class="table-td">
                    <div class="table-input">女</div>
                </td>
            </tr>
        </table>

最后JS部分:

<script>
            $(function(){
                var str=""; //变量
                //双击td事件
                $(".table-td").on("dblclick",".table-input",function(){
                    str=$(this).html(); //获取当前内容
                    //添加input标签
                    var tableInput=$("<input type='text' value='"+$.trim(str)+"'/>"); 
                    $(this).html(tableInput); //更换当前内容
                    $("input").focus();    //获取焦点
                });
                //文本框失去焦点事件
                $(".table-td >.table-input").on("blur","input",function(){
                    var strVal=$(this).val(); //获取当前文本框内容
                    //获取文本框的父节点:input ↑ div
                    var page= this.parentNode;
                    if($.trim(strVal) == ""){ //如果文本框内容为空,值则为原先未改变的内容
                        page.innerHTML=$.trim(str);
                        td_alert("修改成功",1000);
                    }else{
                        page.innerHTML=$.trim(strVal);
                        td_alert("修改成功",1000);
                    }
                });
                //避免文本框双击后改变内容
                $(".table-td").on("dblclick","input",function(){
                    return false;
                });
            })
            /*
             * 返回值弹窗
             * text 名称
             * time 停留时间
             */
            function td_alert(text,time){
                var str="<div id='td_alert'>"+text+"</div>";
                $("table").append(str);//追加元素
                setTimeout(function(){$("#td_alert").remove()},time);//time 时间后 删除元素
            }
        </script>

美观度的话,自身感觉还行,就是不知道你们的胃口了。纯前端代码,可以跟后端一起用。

如果有什么好的建议,不妨留个意见`︶`γ 

如果土豪任性的,可以转链接去下载源码:https://download.csdn.net/download/qq_38508172/10661829

声明:未经作者允许禁止转载!

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值