所以基本上我使用jQuery来交替行颜色,方法是选择与要着色的表相关联的所有tr标签,然后相应地着色它们。然而,在某些时候我不希望某个tr被着色,并且在这些情况下,交替着色应该跳过那些特定的表行。为此,我有一个名为<!> quot; 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');
//}
});

谢谢, 标记

有帮助吗?

解决方案

试试这个:

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

如果你的班级总是以rowSkip开始,那么你可以这样做

$("Table.alternate tr:not('[class^=rowSkip]')").each //looks for class names that starts with rowSkip

其他提示

我建议你看看这个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 }
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top