如何查找表的特定列的相邻td

时间:2015-03-18 11:43:39

标签: javascript jquery

我正在尝试使用jQuery控制表的特定列。

我想选择列号5中包含的下一个或前一个td,从第二个开始,为istance,并更改adjecent的相关文本或css属性。

$(document).ready(function() {
$('table.pl_res_game tr td:nth-child(5)').eq(0).addClass('change');

该列可包含3个或超过100个td。我尝试使用next()和之前的方法

$('table.pl_res_game tr td:nth-child(5)').eq(0).next();

但是我无法选择相邻的那些。

这是一个例子: FIDDLE

3 个答案:

答案 0 :(得分:1)

  

我想选择第5列中包含的所有td

在这种情况下,您只需要从当前代码中删除eq(0),因为这会将选择限制为找到的第一个td

$('table.pl_res_game tr td:nth-child(5)').addClass('change');

Example fiddle


  

我想选择下一个或上一个td

在这种情况下,请使用prev()next()找到它:

var $td = $('table.pl_res_game tr td:eq(1)');
$td.next().add($td.prev()).addClass('direct-sibling');

Example fiddle

答案 1 :(得分:0)

尝试修改eq()的索引,如下例所示:

$('table.pl_res_game tr td:nth-child(5)').eq(1).css({'background-color':'green','color':'#fff'});
$('table.pl_res_game tr td:nth-child(5)').eq(2).css({'background-color':'green','color':'#fff'});

等等

然后,您可以为要选择的范围使用for循环:

$(document).ready(function() {
    for (var i=0;i<3;i++){
$('table.pl_res_game tr td:nth-child(5)').eq(i).css({'background-color':'green','color':'#fff'});
}
});  

JSFIDDLE

答案 2 :(得分:0)

从下一行选择元素
    $('table.pl_res_game tr td:nth-child(5)').eq(0).closest('tr')
                                            .next()
                                            .find('td:nth-child(5)').css({'background-color':'green','color':'#fff'});

FIDDLE

jsut使用prev来选择同一行的前一个td
$('table.pl_res_game tr td:nth-child(5)').prev()
                                         .eq(0)
                                         .css({'background-color':'green','color':'#fff'});

FIDDLE