快速jQuery问题。我的表中的列表示赛车中的赛车分段时间。我想比较一个赛车的分段时间和另一个赛车的分段时间。例如,我有3名赛手,他们的分段时间分别为3秒,4秒和2秒。
在每次旁边的表格单元格中,我想输出与其他赛车手相比的位置:3秒(2),4秒(3)和2秒(1)。
我确信将每个分割时间添加到数组,然后迭代每个并打印位置是一件简单的事情。但是我似乎无法解决如何解决这个问题。
这是一个jsfiddle表作为示例:http://jsfiddle.net/hYvdp/
答案 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调用的响应