可编辑单元格版本二

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <title> New Document </title>
  <meta charset="utf-8"/>
 </head>

 <body onload="initCells()">
  <table border="1px">
    <tbody id="mytable">
        <tr>
            <td width="100px">欧也妮葛朗台</td>
            <td width="400px">
    《欧也妮·葛朗台》是法国批判现实主义小说家巴尔扎克《人间喜剧》中的“最出色的画幅之一”。小说叙述了一个金钱毁灭人性和造成家庭悲剧的故事,围绕欧也妮的爱情悲剧这一中心事件,以葛朗台家庭内专制所掀起的阵阵波澜、家庭外银行家和公证人两户之间的明争暗斗和欧也妮对夏尔·葛朗台倾心相爱而查理背信弃义的痛苦的人世遭遇三条相互交织的情节线索连串小说。
    《欧也妮·葛朗台》是一幅法国19世纪前半期外省的色彩缤纷的社会风俗画。
    </td>
        </tr>
        <tr>
            <td>是真的吗</td>
            <td >是真的吗是中央二台的一档栏目</td>
        </tr>
        <tr>
            <td >战争与和平</td>
            <td >《战争与和平》是俄国作家托尔斯泰的代表作品。</td>
        </tr>
    </table>
  </table>
 </body>
</html>
<script type="text/javascript">
<!--

var editableCell={
    attach:function(td){
        var tag=td.firstChild.tagName;

        if(typeof(tag)!="undifined" && (tag=="INPUT" || tag=="TEXTAREA")){
            return;
        }

        if(td.offsetHeight<=22){
            // 文本框方案

            // 创建文本框
            var txt=document.createElement("input");
            txt.type="text";
            txt.value=td.innerHTML;
            txt.style.background="#ff9";
            txt.style.width=td.offsetWidth+"px";

            // 清空单元格并添加文本框
            td.innerHTML="";
            td.appendChild(txt);

            txt.focus();
            // 焦点移出文本框时新旧节点替换将文本框的值传给单元格
            txt.onblur=function(e){
                td.replaceChild(document.createTextNode(txt.value),txt);
                return false;
            }

            return false;
        }else{
            // 文本域方案

            // 创建文本域
            var area=document.createElement("textarea");
            area.style.width=td.offsetWidth+"px";
            area.style.height=td.offsetHeight+"px";
            area.style.background="#ff9";
            area.value=td.innerHTML;

            // 清空内部文字并代之以文本域
            td.innerHTML="";
            td.appendChild(area);

            area.focus();

            // 焦点移出文本域时新旧节点替换将文本域的值传给单元格
            area.onblur=function(e){
                td.replaceChild(document.createTextNode(area.value),area);

                return false;
            }

            return false;
        }

    }
}

function initCells(){
    var table=document.getElementById("mytable");

    for(var i=0;i<table.rows.length;i++){
            var tr=table.rows[i];
            var tds=tr.getElementsByTagName("td");

            for(var j=0;j<tds.length;j++){
                var td=tds[j];

                (function(td){// 闭包
                    td.onclick=function(){editableCell.attach(td)};
                })(td);
            }
    }
}
//-->
</script>

把上面代码存成html文件用浏览器打开就能看到效果了。

2017年1月14日17:39:28

时间: 2024-10-05 08:33:12

可编辑单元格版本二的相关文章

EasyUI DataGrid 编辑单元格

之前文章 EasyUI DataGrid可编辑单元格实现可编辑单元格,如果有多列都需要可编辑 当点击一个单元格 则此整行都会进行编辑 如下图: 现改为单击某个单元格只对此单元格进行可编辑 <TABLE>标记添加 onClickCell <table id="dg" class="easyui-datagrid" data-options="onClickCell: onClickCell"> 需要进行编辑的列上添加 edi

LVC函数重要参数 EDT_CLL_CB:退出可编辑单元格时回调

6. I_GRID_SETTINGS 参数属性该参数用于设置Grid相关参数(打印.单元格回调):类型为:LVC_S_GLAY,该结构包括:01) COLL_TOP_P:最小化 TOP_OF_PAGE02) COLL_END_L:最小化 END_OF_LIST03) TOP_P_ONLY:仅打印TOP_OF_PAGE04) EOL_P_ONLY:仅打印END_OF_LIST05) NO_COLWOPT:不优化打印的列宽***************************************

Swift - 可编辑表格样例(可直接编辑单元格中内容、移动删除单元格)

(本文代码已升级至Swift3) 本文演示如何制作一个可以编辑单元格内容的表格(UITableView). 1,效果图 (1)默认状态下,表格不可编辑,当点击单元格的时候会弹出提示框显示选中的内容.           (2)点击导航栏右侧编辑按钮,表格进入可以编辑状态 (3)这时我们可以删除表格项. (4)也可以拖动调整单元格的顺序. (5)然后就是本文的重点,在编辑状态下.直接点击单元格,即可在当前页面下直接编辑修改单元格中的内容. 2,单元格编辑功能讲解 (1)通过自定义 UITableV

在DBGrid中,单击单元格选择整行,双击又可编辑单元格

在设计过程中,有时候数据较大量,field 较多的时候,只是点击单元格可能会对某个field的数据误操作(如数据错行),为此才会想到这个问题,解决办法如下:点击单元格就改当前行颜色. 首先DBGRID的属性做好下设置(其实也是DBGRID默认的属性) DBGrid1->Options->dgEditing=TrueDBGrid1->Options->dgRowSelect=False 一.先在implementation前做如下定义type  TMyDBGrid=class(TDB

◆◆0REUSE_ALV_GRID_DISPLAY_LVC-可编辑单元格

使用REUSE_ALV_GRID_DISPLAY_LVC显示ALV时,如何将列.行或者具体的某个单元格设置成可编辑能输入状态?这个其实很简单,下面一一讲解: 1, 列可编辑 只要将catalog中的字段edit设置成‘X',整列就变成能输入的了,LVC_S_FCAT-EDIT 代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39

EasyUI DataGrid可编辑单元格

效果如图: 首先在需要可编辑的列上添加一个editor属性,列定义为numberbox编辑类型 <th field="SCORES" editor="{type:'numberbox',options:{precision:0}}" width="120">默认分值 </th> 当用户点击一行的时候,我们开始一个编辑动作 $('#dg').datagrid({ onClickCell: function(index,fie

实例:表格的相关操作:添加行,删除行,编辑单元格

html代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>汇总</title> <style> #tablebox{width: 70%;margin: 0 auto;border-spacing: 0;border-collapse:collapse;table-layout: fixed;} #tablebox td,#t

gridView 编辑单元格获取单元格焦点位置(位于单元格的焦点位置)

1.主要代码: private void Form1_Load(object sender, EventArgs e) { DataTable dt = new DataTable(); dt.Columns.Add("A"); dt.Columns.Add("B"); for (int i = 0; i < 20; i++) { dt.Rows.Add(i + 1, "测试数据0000" + i); } gridControl1.Data

如何实现可编辑表格单元格效果

如何实现可编辑表格单元格效果:在不少的网页都有这样的效果,可以编辑表格中的内容,非常的方便,在本站特效下载和网络上有一个可编辑单元格的实例,但是通过分析发现有诸多问题,最大一个问题就是浏览器不具有浏览器兼容性,所以本站写了一个简单的能偶兼容所有主流浏览器的效果,下面就通过实例简单介绍一下如何实现可以编辑单元格的效果,代码实例如下: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type&q