2009-11-25 32 views
1

我有一个表有几行 - 我给每一行分配一个悬停函数。 如果选择的TR是奇数或偶数,我想在悬停函数中找到它。jQuery:奇数选择器

我用这个代码:

alert(tr.is(":odd")); 

遗憾的是它并没有,虽然它应该工作,我一直都想与“假”(?)。

我试图直接从TR元素得到的rowIndex,如:

alert(tr.is(":odd")+"/"+tr.get(0).rowIndex); 

奇怪的事情:我得到了正确的rowIndex,但总是从假:奇财产。

有什么不对?

回答

5

:odd伪选择器取决于在上下文或结果集内选择的元素。例如:$('ul li:odd')会从该上下文中选择奇数元素。我会建议使用这种测试来代替:

var odd = (tr[0].rowIndex % 2 == 0); 

每隔一行将从该表达式返回true。由于rowIndex是从零开始的,因此我们使用value % 2 == 0。如果它是基于一个的,则可以使用value % 2 == 1来获取奇数行。

+0

是有意义的。谢谢! – Fuxi 2009-11-25 10:08:36

3

:odd选择器从一组中删除偶数编号的元素。

当在.is()中调用时,它所查看的集合仅包含您的单个tr元素。由于它将在该组中的索引0处,因此它将始终是:even

1

这很奇怪。 :)

但严重的是,单个项目总是项目0的列表,这是偶数。为了有/甚至奇怪的区别,你需要有一个列表。大多数人做的是运行一些加载函数,为奇数元素添加一个类。