2013-02-10 50 views
0

我怎么会从这个去:jQuery代码重新安排表

<tr> 
    <td>A</td> 
    <td><input for A></td> 
</tr> 
<tr> 
    <td>B</td> 
    <td><input for B></td> 
</tr> 

这样:

<tr> 
    <td>A</td> 
    <td>B</td> 
</tr> 
<tr> 
    <td><input for A></td> 
    <td><input for B></td> 
</tr> 

我需要根据行数将行移入N(这个变化从数据集中检索,在这种情况下为2列,但可以是任意数量)的列数。我怎么能做到这一点?

回答

1

您可以在表格数据中读入二维数组,然后用转置的矩阵覆盖表格数据。

function reArrange() { 
    var table = $('table#theTable'); 
    // we will store all the table-data in a two-dim array: 
    var data = new Array(); 
    // find all rows (row-index: i): 
    $(table).find('tr').each(function(i, row) { 
     // find all cells in this row (col-index: j): 
     $(row).find('td').each(function(j, cell) { 
      // make sure, we got the array right: 
      if (data[j] === undefined) { 
       data[j] = new Array(); 
      } 
      // use col-index as first index in the array: 
      data[j][i] = $(cell).html(); 
     }); 
    }); 
    // reset table: 
    $(table).find('tr').remove(); 
    // re-fill table 
    $(data).each(function(i, elem){ 
     var row = $('<tr/>'); 
     $(elem).each(function(j, col) { 
      cell = $('<td/>').html(col); 
      $(row).append(cell); 
     }); 
     $(table).append(row); 
    }); 

} 
reArrange(); 

看一看这个的jsfiddle:http://jsfiddle.net/66YpC/2/

我希望,这就是你要找的人。如果您需要更多关于代码的信息,请告诉我!

+0

这移动到3列,但如果我需要它在2列? – user2036094 2013-02-10 19:33:41

+0

应该适用于任意数量的列和行。试一试。只需修改jsFiddle中的HTML标记,然后单击运行。 – ditscheri 2013-02-12 08:37:19