`
378629846
  • 浏览: 213086 次
  • 性别: Icon_minigender_1
  • 来自: 哈尔滨
社区版块
存档分类
最新评论

js动态创建、删除表格

阅读更多
生成一个2000*5的表格,每个单元格的内容是行号+逗号+列号

方法一:使用createElement生成表格,使用insertRow和insertCell方法生成行列,单元格的内容使用innerHTML属性进行填充。

方法二:使用createElement生成表格,使用CreateElement方法生成行列,单元格的内容使用了createTextNode方法填充。

方法三:拼接表格innerHTML属性的字符串,使用字符串 += 操作符链接字符串

方法四:拼接表格innerHTML属性的字符串,各个字符串追加数组里面,最后调用数组的join方法生成目标字符串。

运行时间比较:

方法 运行时间(ms)
方法一 93037
方法二 3341
方法三 2795
方法四 500

具体的程序如下:

<html>
  <head>
   <title>test page</title>
   <script type='text/javascript'>
     <!--
   function createTable() {
       var t = document.createElement('table');
       for (var i = 0; i < 2000; i++) {
        var r = t.insertRow();
        for (var j = 0; j < 5; j++) {
         var c = r.insertCell();
         c.innerHTML = i + ',' + j;
        }
       }
      
       document.getElementById('table1').appendChild(t);
      t.setAttribute('border', '1');
   }
  
   function createTable2() {
       var t = document.createElement('table');
       var b = document.createElement('tbody');
       for (var i = 0; i < 2000; i++) {
        var r = document.createElement('tr');
        for (var j = 0; j < 5; j++) {
         var c = document.createElement('td');
         var m = document.createTextNode(i + ',' + j);
         c.appendChild(m);
         r.appendChild(c);
        }
        b.appendChild(r);
       }
      
       t.appendChild(b);
       document.getElementById('table1').appendChild(t);
      t.setAttribute('border', '1');
   }
  
   function createTable3() {
    var data = '';
   
    data += '<table border=1><tbody>';
       for (var i = 0; i < 2000; i++) {
        data += '<tr>';
        for (var j = 0; j < 5; j++) {
         data += '<td>' + i + ',' + j + '</td>';
        }
        data += '</tr>';
       }
       data += '</tbody><table>';
      
       document.getElementById('table1').innerHTML = data;
   }
   function createTable4() {
    var data = new Array();
   
    data.push('<table border=1><tbody>');
       for (var i = 0; i < 2000; i++) {
        data.push('<tr>');
        for (var j = 0; j < 5; j++) {
         data.push('<td>' + i + ',' + j + '</td>');
        }
        data.push('</tr>');
       }
       data.push('</tbody><table>');
      
       document.getElementById('table1').innerHTML = data.join('');
   }

   function showFunctionRunTime(f) {
    var t1 = new Date();
    f();
    var t2 = new Date();
    alert(t2 - t1);
   }
     //-->
   </script>
  </head>
<body>
  <div id="table1" style="border: 1px solid black">
  </div>

  <script>
   showFunctionRunTime(createTable);
   showFunctionRunTime(createTable2);
   showFunctionRunTime(createTable3);
   showFunctionRunTime(createTable4);
  </script>
</body>
</html>

1、inserRow()和insertCell()函数
  insertRow()函数可以带参数,形式如下:
  insertRow(index)
  这个函数将新行添加到index的那一行前,比如insertRow(0),是将新行添加到第一行之前。默认的insertRow()函数相当于insertRow(-1),将新行添加到表的最后。
  insertCell()和insertRow的用法相同。
  2、动态设置属性和事件
  上面的innerHTML和innerText都是列的属性。
  innerText是添加到<tb></tb>之间的文本,innerHTML是添加到<tb></tb>之间的HTML代码
  设置其他属性也是用同样的方式,比如,设置行背景色
  tr.bgColor = 'red';
   设置colspan属性
    td.colSpan = 3;
  
  设置事件也一样,需要简单说明一点。
  比如,我要让点击新加行的时候执行一个自己定义的函数 newClick,newClick函数如下:
  function newClick(){
     alert("这是新添加的行");
  }
  对onclick事件设置这个函数的代码如下:
  tr.onclick = newClick;
  这里需要主义的是,=后面的部分必须是函数名,而且不能带引号,
  newTr.onclick = newClick();
  newTr.onclick = 'newClick';
  newTr.onclick = "newClick";
  上面的写法都是错误的。
  下面的写法,也是正确的
  newTr.onclick = function newClick(){
     alert("这是新添加的行");
  }

原文:http://abaper.blogbus.com/logs/8278500.html



动态删除表格 

  方法1:
  <table   id=mxh   border=1>  
  <tr>  
  <td>第1行</td><td   onclick="deleteRow('mxh',this.parentElement.rowIndex)">删除本行</td>  
  </tr>  
  <tr>  
  <td>第2行</td><td   onclick="deleteRow('mxh',this.parentElement.rowIndex)">删除本行</td>  
  </tr>

  </table>

<script>  
  function   deleteRow   (tableID,   rowIndex)   {  
      var   table   =document.all[tableID]  
      table.deleteRow(rowIndex);  
  }
  function getRowNum(tableID){    
     var tab = document.all[tableID]
      //表格行数
      var rows = tab.rows.length ;
      //表格列数
      var cells = tab.rows.item(0).cells.length ;
  } 
</script>

方法2:

<table   id=mxh   border=1>  
  <tr>  
  <td>第1行</td><td   onclick="deleteRow(this.parentElement)">删除本行</td>  
  </tr>  
  <tr>  
  <td>第2行</td><td   onclick="deleteRow(this.parentElement)">删除本行</td>  
  </tr>

  </table>

<script>  
  function   deleteRow   (obj)   {  

      obj.parentElement.removeChild(obj);  
  }    
  </script>

分享到:
评论
1 楼 赤道螞蟻 2010-09-15  
请问能在create table的td中在create table吗?? 运行不成功了

相关推荐

    动态创建删除表格

    jquery动态实现创建、删除整个表格,一行一行创建、删除表格。一格一格创建、删除表格

    javascript_动态创建表格

    用js创建动态表格一些基本语法 avascript 动态创建表格:新增、删除行和单元格 利用js来动态创建表格有两种格式,appendChild()和insertRow、insertCell()。

    js动态添加删除表格

    NULL 博文链接:https://jeasony.iteye.com/blog/353914

    JavaScript动态添加删除表格行

    NULL 博文链接:https://long316.iteye.com/blog/1393886

    js动态操作表格

    JavaScript动态操作表格,添加,删除行、列及单元格

    js的节点操作动态创建table表格,创建行,删除行.pdf

    js的节点操作动态创建table表格,创建行,删除行

    JS实现页面创建表格.rar

    实现页面创建表格,和删除指定列、行单元格功能。利用JavaScript动态创建表格,可根据用户的使用需求动态添加指定列数、行数,删除指定列数、行数。删除成功或不成功时,会反馈给用户一个弹框提示,增强用户体验感。

    javascript 动态创建表格:新增、删除行和单元格.zip

    利用js来动态创建表格有两种格式,appendChild()和insertRow、insertCell()。两种方式其实差不多,但第一种有可能在IE上有问题,所以推荐大家使用第二种了,直接说吧。

    Javascript动态创建表格及删除行列的方法

    主要介绍了Javascript动态创建表格及删除行列的方法,涉及javascript动态操作表格的相关技巧,需要的朋友可以参考下

    JavaScript如何动态创建table表格

    主要介绍了JavaScript如何动态创建table表格,一些时候需要动态的创建和删除表格,接下来的文章中将为大家介绍下javascript是如何做到的,感兴趣的朋友不要错过

    JavaScript动态生成表格案例

    然后获取了表格元素及其 tbody 元素,通过 for 循环遍历数组中的每个学生,动态创建了表格的每一行和每个单元格,并将学生的信息填充到对应的单元格中。 最后,为每行的删除操作添加了点击事件处理程序。当用户单击...

    js动态创建表格,删除行列的小例子

    介绍了js动态创建表格,删除行列的实例代码,有需要的朋友可以参考一下

    JavaScript与DOM组合动态创建表格实例

    它使用DOM 1的方法由JavaScript动态创建一个HTML表格。它创建一个由四个包含文本内容的单元格组成的小表格。单元格的文字内容是:“单元格是第y行第x列”,表示单元格在表格中的行数和列数。 代码如下:&lt;ht

    js表格动态行源码

    动态创建表格行; 支持 添加 删除 在table中可动态添加或删除任意多的行;

    【JavaScript源代码】JavaScript动态生成带删除行功能的表格.docx

    JavaScript动态生成带删除行功能的表格  本文实例为大家分享了javascript实现动态生成表格/删除行的具体代码,供大家参考,具体内容如下 动态生成一个带删除行功能的表格: 实现思路 1、获取表格元素 2、获取要...

    原创-javascript服务器交互型可编辑表格和我的js常用库

    * 自定义javascript常用基础库 author zhang_jhai 创建时间 2010/04/10 最后修改时间 2010/05/03 * version 2.0 */ // Base库基础类 BaseJs = function() { // 判断浏览器类型 userAgent = navigator....

    js动态创建、删除表格示例代码

    生成一个2000*5的表格,每个单元格的内容是行号+逗号+列号 方法一:使用createElement生成表格,使用insertRow和insertCell方法生成行列,单元格的内容使用innerHTML属性进行填充。 方法二:使用createElement生成...

    树形表格菜单 动态添加节点/动态删除节点/动态移动节点

    4.动态dom对象创建表格树 5.完美支持json格式数据,支持xml(需转换) 6.支持ajax加载节点 7.事件驱动 8.可以动态根据列内容排序 9.简化函数参数,利用{} object输入参数,风格类似Extjs 10.树状结构可以选择出现在某一列...

    JS动态添控制表格

    //记录创建表ID var imgNum =2;//用来匹配IMG和对应单元格 //检测按钮是添加还是删除 function CheckBtn(obj) { if(obj.nameProp=="Minus.gif"){ obj.src="../../App_Themes/Default/images/Plus.gif"; ...

Global site tag (gtag.js) - Google Analytics