免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1686 | 回复: 1
打印 上一主题 下一主题

JS动态创建表格(转) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-01-07 10:55 |只看该作者 |倒序浏览
JS动态创建表格(转)





目标:生成一个2000*5的表格,每个单元格的内容是行号+逗号+列号 (转别人的)

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

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

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

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

Html代码
  1. <html>  
  2.   <head>  
  3.    <title>test page</title>  
  4.    <script type='text/javascript'>  
  5.      <!--   
  6.    function createTable() {   
  7.        var t = document.createElement('table');   
  8.        for (var i = 0; i < 2000; i++) {   
  9.         var r = t.insertRow();   
  10.         for (var j = 0; j < 5; j++) {   
  11.          var c = r.insertCell();   
  12.          c.innerHTML = i + ',' + j;   
  13.         }   
  14.        }   
  15.          
  16.        document.getElementById('table1').appendChild(t);   
  17.       t.setAttribute('border', '1');   
  18.    }   
  19.       
  20.    function createTable2() {   
  21.        var t = document.createElement('table');   
  22.        var b = document.createElement('tbody');   
  23.        for (var i = 0; i < 2000; i++) {   
  24.         var r = document.createElement('tr');   
  25.         for (var j = 0; j < 5; j++) {   
  26.          var c = document.createElement('td');   
  27.          var m = document.createTextNode(i + ',' + j);   
  28.          c.appendChild(m);   
  29.          r.appendChild(c);   
  30.         }   
  31.         b.appendChild(r);   
  32.        }   
  33.          
  34.        t.appendChild(b);   
  35.        document.getElementById('table1').appendChild(t);   
  36.       t.setAttribute('border', '1');   
  37.    }   
  38.       
  39.    function createTable3() {   
  40.     var data = '';   
  41.       
  42.     data += '<table border=1><tbody>';   
  43.        for (var i = 0; i < 2000; i++) {   
  44.         data += '<tr>';   
  45.         for (var j = 0; j < 5; j++) {   
  46.          data += '<td>' + i + ',' + j + '</td>';   
  47.         }   
  48.         data += '</tr>';   
  49.        }   
  50.        data += '</tbody><table>';   
  51.          
  52.        document.getElementById('table1').innerHTML = data;   
  53.    }   
  54.   
  55.    function createTable4() {   
  56.     var data = new Array();   
  57.       
  58.     data.push('<table border=1><tbody>');   
  59.        for (var i = 0; i < 2000; i++) {   
  60.         data.push('<tr>');   
  61.         for (var j = 0; j < 5; j++) {   
  62.          data.push('<td>' + i + ',' + j + '</td>');   
  63.         }   
  64.         data.push('</tr>');   
  65.        }   
  66.        data.push('</tbody><table>');   
  67.          
  68.        document.getElementById('table1').innerHTML = data.join('');   
  69.    }   
  70.   
  71.    function showFunctionRunTime(f) {   
  72.     var t1 = new Date();   
  73.     f();   
  74.     var t2 = new Date();   
  75.     alert(t2 - t1);   
  76.    }   
  77.      //-->  
  78.    </script>  
  79.   </head>  
  80. <body>  
  81.   <div id="table1" style="border: 1px solid black">  
  82.   </div>  
  83.   
  84.   <script>  
  85.       
  86.    showFunctionRunTime(createTable2);   
  87.   /*   
  88.    showFunctionRunTime(createTable);   
  89.    showFunctionRunTime(createTable3);   
  90.    showFunctionRunTime(createTable4);*/   
  91.   </script>  
  92. </body>  
  93. </html>   

  94. <html>
  95.   <head>
  96.    <title>test page</title>
  97.    <script type='text/javascript'>
  98.      <!--
  99.    function createTable() {
  100.        var t = document.createElement('table');
  101.        for (var i = 0; i < 2000; i++) {
  102.         var r = t.insertRow();
  103.         for (var j = 0; j < 5; j++) {
  104.          var c = r.insertCell();
  105.          c.innerHTML = i + ',' + j;
  106.         }
  107.        }
  108.       
  109.        document.getElementById('table1').appendChild(t);
  110.       t.setAttribute('border', '1');
  111.    }
  112.    
  113.    function createTable2() {
  114.        var t = document.createElement('table');
  115.        var b = document.createElement('tbody');
  116.        for (var i = 0; i < 2000; i++) {
  117.         var r = document.createElement('tr');
  118.         for (var j = 0; j < 5; j++) {
  119.          var c = document.createElement('td');
  120.          var m = document.createTextNode(i + ',' + j);
  121.          c.appendChild(m);
  122.          r.appendChild(c);
  123.         }
  124.         b.appendChild(r);
  125.        }
  126.       
  127.        t.appendChild(b);
  128.        document.getElementById('table1').appendChild(t);
  129.       t.setAttribute('border', '1');
  130.    }
  131.    
  132.    function createTable3() {
  133.     var data = '';
  134.    
  135.     data += '<table border=1><tbody>';
  136.        for (var i = 0; i < 2000; i++) {
  137.         data += '<tr>';
  138.         for (var j = 0; j < 5; j++) {
  139.          data += '<td>' + i + ',' + j + '</td>';
  140.         }
  141.         data += '</tr>';
  142.        }
  143.        data += '</tbody><table>';
  144.       
  145.        document.getElementById('table1').innerHTML = data;
  146.    }

  147.    function createTable4() {
  148.     var data = new Array();
  149.    
  150.     data.push('<table border=1><tbody>');
  151.        for (var i = 0; i < 2000; i++) {
  152.         data.push('<tr>');
  153.         for (var j = 0; j < 5; j++) {
  154.          data.push('<td>' + i + ',' + j + '</td>');
  155.         }
  156.         data.push('</tr>');
  157.        }
  158.        data.push('</tbody><table>');
  159.       
  160.        document.getElementById('table1').innerHTML = data.join('');
  161.    }

  162.    function showFunctionRunTime(f) {
  163.     var t1 = new Date();
  164.     f();
  165.     var t2 = new Date();
  166.     alert(t2 - t1);
  167.    }
  168.      //-->
  169.    </script>
  170.   </head>
  171. <body>
  172.   <div id="table1" style="border: 1px solid black">
  173.   </div>

  174.   <script>
  175.    
  176.    showFunctionRunTime(createTable2);
  177.   /*
  178.    showFunctionRunTime(createTable);
  179.    showFunctionRunTime(createTable3);
  180.    showFunctionRunTime(createTable4);*/
  181.   </script>
  182. </body>
  183. </html>
复制代码
参考:
http://www.cnblogs.com/huhaoaixl/archive/2009/03/17/1414752.html

论坛徽章:
0
2 [报告]
发表于 2012-01-07 10:56 |只看该作者
谢谢分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP