js添加删除行和双击变文本框的脚本

js实现添加删除行和双击变文本框。

代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" > 
<head> 
    <title>js添加删除行和双击变文本框-www.jbxue.com</title> 
    <style type="text/css"> 
    *{ 
        font-size:12px; 
    } 
    #myTable{ 
        background:#D5D5D5; 
        color:#333333; 
    } 
     
    #myTable tr{ 
        background:#F7F7F7; 
    } 
    #myTable tr th{ 
        height:20px; 
        padding:5px; 
    } 
    #myTable tr td{ 
        padding:5px; 
    } 
    </style> 
    <script type="text/javascript"> 
    function $(obj){ 
        return document.getElementById(obj); 
    } 
     
    var num = 0; 
    function row(id){ 
        //构造函数 
        this.id = $(id); 
    } 
    row.prototype = { 
        //插入行 
        insert:function(){ 
            num = num + 1; 
            var newTr = this.id.insertRow(-1); 
            var td_1 = newTr.insertCell(0); 
            var td_2 = newTr.insertCell(1); 
            var td_3 = newTr.insertCell(2); 
            td_1.innerHTML = num; 
            td_2.innerHTML = "脚本之家 www.jb51.net"; 
            td_3.innerHTML = "<input type='button' οnclick='delRow(this)' value='删除' >"; 
        }, 
        //删除行 
        del:function(obj){ 
            var i = obj.parentNode.parentNode.rowIndex; 
            this.id.deleteRow(i); 
        } 
    } 
       
    function addRow(){ 
        var row2 = new row("myTable"); 
        row2.insert(); 
    } 
     
    function delRow(obj){  
        var row1 = new row("myTable"); 
        row1.del(obj); 
    } 
     
    var inputItem; // 输入框句柄 
    var activeItem; // 保存正在编辑的单元格 
     
    //转成文本 
    function changeToText(obj){ 
        if( obj && inputItem ) { 
            // 如果存在正在编辑的单元格, 则取消编辑状态, 并将编辑的数据保存起来 
            var str = " "; 
            if(inputItem.value != "")  
                str = inputItem.value; 
            obj.innerText = str;    
        } 
    } 
     
    //转成编辑 
    function changeToEdit(obj){ 
         if( !inputItem ) { 
              inputItem = document.createElement('input'); 
              inputItem.type = 'text'; 
              inputItem.style.width = '100%'; 
         } 
        // inputItem.style.display = ''; 
         inputItem.value = obj.innerText; // 将该单元格的数据文本读到控件上 
         obj.innerHTML = ''; // 清空单元格的数据 
         obj.appendChild(inputItem); 
         inputItem.focus(); 
         activeItem = obj; 
    } 
     
     
    //双击时文本变成文本框 
    document.ondblclick = function(){ 
        if(event.srcElement.tagName.toLowerCase() == "td"){ 
            if(!inputItem){ 
                inputItem = document.createElement("input"); 
                inputItem.type = "text"; 
                inputItem.style.width = "100%"; 
            } 
            changeToText(); 
            changeToEdit(event.srcElement); 
        }else{ 
            event.returnValue = false; 
            return false; 
        } 
    } 
     
    //单击时文本框变成文本 
    document.onclick = function(){ 
        if(event.srcElement.parentNode == activeItem || event.srcElement == activeItem) 
            return; 
        else 
            changeToText(activeItem); 
    } 
    </script> 
</head> 
<body> 
<input type="button" οnclick="addRow()" value="插入一行" /> 
<table id="myTable" border="0" cellpadding="0" cellspacing="1"> 
<tr><th>编号</th><th>姓名</th><th>操作</th></tr> 
</table> 
</body> 
</html> 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值