我有一个包含多行的表 - 我为每一行分配了一个悬停功能。 如果选择的TR是奇数或偶数,我想在我的悬停功能中找到什么。
我使用了这段代码:
alert(tr.is(":odd"));
不幸的是它不起作用虽然它应该(?)我总是得到“假”。
我尝试直接从TR元素获取rowIndex,如:
alert(tr.is(":odd")+"/"+tr.get(0).rowIndex);
奇怪的是:我得到了正确的rowIndex,但是:odd属性总是为假。
出了什么问题?
答案 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函数,为奇数元素添加一个类。