2011-03-01 56 views

回答

4

尝试使用.eq()代替。

$('#someTable tbody .graphedRow').eq(pointIndex+1).css('background-color', '#FEFF9F'); 

虽然应该注意eq()从0开始索引。


在Firebug中做了一些测试。

:nth-child在这种情况下比.eq()稍快。 (百分之一毫秒更快)

此外,:nth-child工作正常,但它的基础上的所有儿童#someTable tbody的索引。它只是返回那些类.graphedRow

所以看你的jsfiddle,你有6 <tr><tbody>其中三个有类.graphedRow(这将是第1,第4和第6 <tr>)所以:nth-child(1):nth-child(4):nth-child(6),会选择那些。

:nth-child的指数仍然会增加,由于(没有班上其他<tr>)的#someTable tbody其他孩子

其中,作为.eq()的指数是基于然而.graphedRow许多情况下出现内#someTable tbody

+0

这工作!但不是更慢?此外,我很好奇为什么:nth-​​child()不起作用 – Jonah 2011-03-01 07:53:10

+0

如果我记得正确,第n个孩子计数所有孩子,因为eq只计算选择器(在这种情况下.graphedRow是tbody的后代,它是#someTable的后裔) - 所以我相信eq更快,因为它只能真正寻找.graphedRow。 – DaiYoukai 2011-03-02 20:00:34

2

使用

$('#someTable tbody > tr:nth-child('+index+')').css('background-color', '#FEFF9F') 
+1

我不认为你读了这个问题,我需要第n行与特定类 – Jonah 2011-03-01 07:50:39

+0

有两个不同的条件,无论你找到第n个孩子还是找到具体的类? – diEcho 2011-03-01 07:58:17

+0

两者。我需要具有特定类的第n行。有些行在某个类中,有些不是。我需要该类中的第n行 – Jonah 2011-03-01 08:00:21

相关问题