jQuery:奇数选择器

时间:2009-11-25 01:59:16

标签: jquery jquery-selectors

我有一个包含多行的表 - 我为每一行分配了一个悬停功能。 如果选择的TR是奇数或偶数,我想在我的悬停功能中找到什么。

我使用了这段代码:

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

不幸的是它不起作用虽然它应该(?)我总是得到“假”。

我尝试直接从TR元素获取rowIndex,如:

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

奇怪的是:我得到了正确的rowIndex,但是:odd属性总是为假。

出了什么问题?

3 个答案:

答案 0 :(得分:5)

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

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

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

答案 1 :(得分:3)

:odd选择器从集合中删除偶数元素。

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

答案 2 :(得分:1)

这很奇怪。 :)

但严重的是,单个项目始终是该列表的第0项,这是偶数。要获得偶数/奇数区别,您需要有一个列表。大多数人所做的是运行一些on-load函数,为奇数元素添加一个类。