0

我怎么能从这个开始:

<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 列,但它可以是任意数量)列数。我怎么能做到这一点?

4

1 回答 1

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/

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

于 2013-02-10T18:58:04.490 回答