使用jquery选择一系列td单元格

时间:2013-05-01 16:45:31

标签: jquery jquery-selectors

说我有下表

<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?
  3. 我对一个适应性强的解决方案很感兴趣,因为我的表可能会在列和行中有所不同,我可能需要选择4行而不是3行。

    到目前为止我已经

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

    但它并没有停留在#TD11

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

3 个答案:

答案 0 :(得分:4)

尝试:

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

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

答案 1 :(得分:2)

jQuery Filter是你的朋友

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

答案 2 :(得分: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/