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

时间:2011-07-19 19:58:26

标签: javascript jquery

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

在每次旁边的表格单元格中,我想输出与其他赛车手相比的位置:3秒(2),4秒(3)和2秒(1)。

我确信将每个分割时间添加到数组,然后迭代每个并打印位置是一件简单的事情。但是我似乎无法解决如何解决这个问题。

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

1 个答案:

答案 0 :(得分:1)

如果你有这个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++;
}

在这里摆弄:http://jsfiddle.net/XcpNw/

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