所以基本上我使用jQuery来交替行颜色,方法是选择与要着色的表相关联的所有tr标签,然后相应地着色它们。然而,在某些时候我不希望某个tr被着色,并且在这些情况下,交替着色应该跳过那些特定的表行。为此,我有一个名为“rowSkip”的类,它适用于应该跳过颜色化的所有行。
几个月来,我一直在努力工作,这是一种享受......然而,一直存在一个问题。有些情况下,我需要将多个类应用于表行,但也不希望它着色。在这种情况下,jQuery的类选择器似乎有问题 - 或者我在这里缺少一些简单的东西......
EG:
<tr class="rowSkip">
- &gt;工作正常。
<tr class="rowSkip strong someclass1 someclass2">
- &gt;不起作用(尽管存在“rowSkip”类,仍然会变色)
有没有人知道为什么会出现这种情况以及我如何解决这个问题,而不是完全抓住类attr,按空格进行拆分,然后迭代它并检查rowSkip的存在? / p>
代码如下:
$("Table.alternate tr:not(.rowSkip)").each(function() {
//if(!$(this).hasClass("rowSkip")) { //Also tried this, and several other renditions to no avail.
$(this).addClass(i++ % 2 == 0 ? 'rowOff1' : 'rowOff2');
//}
});
谢谢, 标记
答案 0 :(得分:4)
试试这个:
$("Table.alternate tr:not('[class*=rowSkip]')").each
如果你的班级总是以rowSkip开始,那么你可以这样做
$("Table.alternate tr:not('[class^=rowSkip]')").each //looks for class names that starts with rowSkip
答案 1 :(得分:0)
我建议你看看这个jQuery选择器的构建:odd和:even。那么你有几种方法:
$('table.alternating tr:odd td').css('background-color','#eee');
或使用课程:
$('table.alternating tr:odd').addClass('odd');
和一些CSS:
tr.odd td { background-color: #eee }