更改表格式项目顺序

时间:2009-11-27 17:58:08

标签: javascript jquery html-table markup

我有一组divs表(带行和列),用于显示足球表。现在,我需要能够根据所选的密钥对该表进行排序,而无需刷新页面并避免使用ajax。

更具体一点,我需要抓住每个“columm”内部的值,然后重新选择并重新排序表。

我使用jQuery,所以工作应该相当简单,只是不确定如何使用团队的id和原因列重新排序数组。顺便说一下,表值都是数值。

下面是标记(行)的示例:

<div class="rb">
        <div class="cname">Benfica</div>
        <div class="tdr bold">0</div>
        <div class="tdg bold">0</div>

        <div class="tdg bold">0</div>
        <div class="tdg bold">0</div>
        <div class="tdg bold">0</div>
        <div class="tdr bold" style="margin-left: 5px;">0</div>
        <div class="tdg bold">0</div>
        <div class="tdg bold">0</div>

        <div class="tdg bold">0</div>
        <div class="tdg bold">0</div>
        <div class="tdr bold" style="margin-left: 5px;">0</div>
        <div class="tdg bold">0</div>
        <div class="tdg bold">0</div>
        <div class="tdg bold">0</div>

        <div class="tdg bold">0</div>
        <div class="tdg bold" style="margin-left: 5px;">0</div>
        <div class="tdg bold">0</div>
        <div class="tdr bold">0</div>
</div>

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

假设您有一个对象数组,其中每个对象对应一个表行,并且每个对象都具有与表列对应的属性。

var table = [
   { rowId: 1, teamName: 'Man U', country: 'England' },
   { rowId: 2, teamName: 'FC Barcelona', country: 'Spain' }
];

现在,如果你已经按照这样的方式安排了数据,你可以创建一个函数,你只需说drawTable(table)它就可以创建你想要的HTML标记。然后,您可以在该变量中进行排序,如下所示:

function sortTable(table, column) {
    table.sort(function(x,y) { return x[column] > y[column]; });
    return table;
}

$('#sortByTeamName').click(function() {
   table = sortTable(table, 'teamName');
   drawTable(table);
});