3

说我有下表

<table>
    <tr><td> #TD1 </td><td> #TD2 </td></tr>
    <tr><td> #TD3 </td><td> #TD4 </td></tr> 
    <tr><td> #TD5 </td><td> #TD6 </td></tr>
    <tr><td> #TD7 </td><td> #TD8 </td></tr>
    <tr><td> #TD9 </td><td> #TD10 </td></tr>
    <tr><td> #TD11 </td><td> #TD12 </td></tr>
    <tr><td> #TD13 </td><td> #TD14 </td></tr>
</table>

使用 jquery 我如何选择

  1. #TD5、#TD7 和 #TD9 ?
  2. #TD6、#TD8 和 #TD10 ?

我对适应性强的解决方案感兴趣,因为我的表格的列和行可能会有所不同,我可能需要选择 4 行向下而不是仅仅 3 行。

到目前为止我有

 $("table tr:gt(1) td:nth-child(1)").css('color','red')

但它并不止于#TD11

另见http://jsfiddle.net/2ygJk/

4

3 回答 3

4

尝试:

$("table tr:gt(1):lt(3)").css('color','red')

http://jsfiddle.net/2ygJk/4/

于 2013-05-01T16:49:21.557 回答
2

jQuery 过滤器是你的朋友

var indexes = [5,7,9]; // the indexes you would like to filter out

var filterdCelles = $('td').filter(function(i){
    return indexes.indexOf(i) > -1;
})

然后你可以这样做:

filterdCelles.css('color','red'); // changes the font to this color
于 2013-05-01T16:49:54.780 回答
1

这应该这样做。诀窍是选择 大于一个索引小于另一个索引的行:

$("table tr:gt(1):lt(3) td:nth-child(1)").css('color','red'); // 5,7,9
$("table tr:gt(1):lt(3) td:nth-child(2)").css('color','blue'); // 6,8,10

http://jsfiddle.net/mblase75/EaZsG/

于 2013-05-01T16:47:48.460 回答