3

所以基本上我使用 jQuery 通过选择与要着色的表关联的所有 tr 标签来交替行颜色,然后相应地为它们着色。但是,在某些时候我不希望某个 tr 被着色,在这些情况下,交替着色应该跳过那些特定的表格行。为此,我有一个名为“rowSkip”的类,我将其应用于应该跳过着色的所有行。

几个月来,我一直在进行这项工作,而且效果很好……但是,一直存在一个问题。在某些情况下,我需要将多个类应用于表格行,但也不希望它着色。在这些情况下,jQuery 的类选择器似乎有问题——要么是这样,要么我在这里遗漏了一些简单的东西......

例如:

<tr class="rowSkip">--> 工作正常。

<tr class="rowSkip strong someclass1 someclass2">--> 不起作用(尽管存在“rowSkip”类,但仍会着色)

有谁知道为什么会这样,以及我如何绕过它而不是完全抓住类 attr,按空间分割,然后遍历它并检查是否存在 rowSkip?

代码如下:

$("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');
//}
});

谢谢,马克

4

2 回答 2

6

试试这个:

$("Table.alternate tr:not('[class*=rowSkip]')").each

好吧,如果您的课程总是以 rowSkip 开头,那么您可以这样做

$("Table.alternate tr:not('[class^=rowSkip]')").each //looks for class names that starts with rowSkip
于 2009-10-27T18:33:48.900 回答
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 }
于 2009-10-28T05:15:19.033 回答