2010-03-15 59 views
1

比方说,我有看起来像这样的两个表:寻找兄弟姐妹的第n个孩子通过jQuery

TH TH TH TH 
TD TD TD TD 
TD TD TD TD 

TH TH TH TH 
TH TD TD TD 
TH TD TD TD 

我想在每个选择第3列。

起初我用第n个孩子这样:

$('table tr td:nth-child(3)') 

但是,这不会工作,为第TD是在每个表中的不同列。

我在伪代码中需要的是'在每一行中获得第三TD TH'。

我假设我需要使用$ .siblings,但不完全确定。

回答

6

这个工作对我来说:

$('table tr :nth-child(3)').css('background-color', 'red'); 

它设置的第三列的背景颜色为“红色”(同时适用于表)。

请注意,tr:nth-child(3)之间有一个空格,并且在:nth-child(3)之前没有td

您可以通过check out this site了解示例代码并进行实验。

+0

啊!空间。 'tr:nth-​​child()'和'tr:nth-​​child()'之间的巨大差异!这有帮助! – 2010-03-15 22:21:58

2

你需要写$('table tr *:nth-child(3)')

:nth-child选择器选择无论有多少兄弟姐妹由选择匹配的是第n个孩子父元素。

您(错误地)描述了:eq选择器。

+1

事实上,他正在描述一些根本不存在的选择器。 'table tr td:eq(3)'会在tr表中返回表中的第四个(基于0的索引)td,而没有其他的。 – gnarf 2010-03-15 22:14:26

+0

tr:第n个孩子(3)返回第3个TR。我需要返回TR的第三个孩子。但是那个孩子可能是TD或者TH – 2010-03-15 22:18:45

+0

@DA:那么你需要写'tr *:nth-​​child(3)'。 – SLaks 2010-03-15 22:19:40