如何使用jQuery打印表列中每个值的位置

How to print the position of each value in a table column using jQuery

本文关键字:位置 何使用 jQuery 打印      更新时间:2023-09-26

快速jQuery问题。表中的列表示选手在比赛中的分配时间。我想比较一下一个车手和另一个车手的分秒时间。例如,我有3名选手,他们的分秒分别是3秒、4秒和2秒。

在每个时间旁边的表格单元格中,我想输出与其他车手相比的位置,如下所示:3秒(2)、4秒(3)和2秒(1)。

我相信这是一个简单的问题,添加每个分裂时间到一个数组,然后迭代每个和打印的位置。然而,我似乎不知道如何解决这个问题。

下面是一个jsfiddle表作为示例:http://jsfiddle.net/hYvdp/

如果你有这个html:

<table cellspacing='5' border=1>
    <tr>
        <td>Race 1 time</td>
        <td>Race 2 time</td>
        <td>Race 3 time</td>
    </tr>
        <tr id='time'>
        <td>4</td>
        <td>1</td>
        <td>2</td>
    </tr>
        <tr id='position'>
        <td></td>
        <td></td>
        <td></td>
    </tr>
</table>

你可以这样计算位置:

var racers= []
$('#time td').each(function(){
    var racer = {};
    racer['idx'] = $(this).index();
    racer['time'] =   $(this).text();
    racers.push(racer);
 });
racers.sort(function(a,b){
    if(a.time > b.time){
        return 1;
    }else if(a.time < b.time){
        return -1;
    }
    return 0;
});
var position = 1;
for (i =0; i<racers.length; i++){
    var idx = racers[i].idx;
    $('#position td:eq('+idx+')').html('Position :'+position);
    position++;
}

here提琴:http://jsfiddle.net/XcpNw/

第三行具有动态计算的位置:您可以将相同的行为附加到函数或ajax调用的响应