少年阿賓

          那些青春的歲月

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            500 Posts :: 0 Stories :: 135 Comments :: 0 Trackbacks

          生成一個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>

          原文出處: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);  
            }    
            </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>

          分享到:

          posted on 2012-08-28 21:20 abin 閱讀(1320) 評論(0)  編輯  收藏 所屬分類: Javascript
          主站蜘蛛池模板: 湖州市| 江山市| 响水县| 阿克| 临桂县| 石台县| 绿春县| 巢湖市| 普兰县| 客服| 阿荣旗| 鲜城| 图木舒克市| 贵阳市| 青海省| 广河县| 刚察县| 芦山县| 旺苍县| 蒙城县| 锦州市| 措美县| 乐至县| 丰县| 台安县| 横山县| 洛阳市| 临沧市| 深圳市| 额尔古纳市| 岗巴县| 黎城县| 莒南县| 北京市| 太和县| 巨野县| 布拖县| 泾阳县| 中卫市| 那曲县| 和政县|