0

我需要创建可以有多行的表格。我使用 javascript 在运行时创建表。到目前为止,用两个循环做到了

exlTb = document.getElementById('exlTb');
tbl = document.createElement('table');
tbdy = document.createElement('tbody');

for(var i=0; i <= row; i++){
    var tr=document.createElement('tr');
    for(var j = 0; j <= colomn; j++){
      var td = document.createElement('td'); 
      tr.appendChild(td);
      }
    tbdy.appendChild(tr);  
   }
 tbl.appendChild(tbdy);
 exlTb.appendChild(tbl);

我正在尝试优化我的解决方案

4

1 回答 1

2

如果您的目标是更快地创建表格,那么所有往返 DOM 层的行程都是您可以摆脱的。浏览器在解析 HTML方面确实非常快。当像这样动态地构建表格时,通常最好创建标记,然后让浏览器一次解析并创建它,因为您不会一直跨越 JavaScript/DOM 边界。

这是一种方法:

exlTb = document.getElementById('exlTb');
var markup = ['<table><tbody>'];

for(var i=0; i <= row; i++){
    markup.push('<tr>');
    for(var j = 0; j <= colomn; j++){
      markup.push('<td></td>');
      }
    markup.push('</tr>');
   }
markup.push('</tbody></table>');
exlTb.innerHTML = markup.join(""); // <== Note: Assumes exlTb is otherwise empty

在许多(但不是全部)情况下,在数组中构建标记然后在最后组合一次比字符串连接更快。我希望如果你环顾四周,那里已经有一个http://jsperf.com测试比较......

于 2013-10-03T11:25:55.780 回答