0

我一直在敲这个头太久了。

我有一个基本表(除了那些包含 th 的所有 TR 都是带有 classme 的类)

<table>
<tr class="classme"><td>1</td></tr>
<tr class="classme"><td>1a</td></tr>
<tr class="classme"><td>2</td></tr>
<tr class="classme"><td>2a</td></tr>
<tr><th>skip me</th></tr>
<tr class="classme"><td>3</td></tr>
<tr class="classme"><td>3a</td></tr>
<tr ...><td>4</td></tr>
<tr ...><td>4a</td></tr>
<tr ...><td>5</td></tr>
<tr><td>5a</td></tr>
<tr><td>8</td></tr>
<tr><td>8a</td></tr>
<tr><td>9</td></tr>
<tr><td>9a</td></tr>
<tr><td>10</td></tr>
<tr><td>10a</td></tr>
<tr><th>skip me</th></tr>
<tr><td>11</td></tr>
<tr><td>11a</td></tr>
<tr><td>12</td></tr>
<tr><td>12a</td></tr>
</table>

我想用 tr 背景颜色条纹。

我正在使用 jQuery 并在这里找到了一些帖子,Google 与剥离有关,但未能找到跳过任意行的内容。

我已经尝试...

$("tr:nth-child(4n)").addClass("alt").prev().addClass("alt");

效果很好,但它计算了我想跳过的那些。

$("tr:not(tr th):nth-child(4n)").addClass("alt").prev().addClass("alt");

没有运气。我什至试图为结果分配一个变量

var trs = $(".classme"); 
$(trs + ":nth-child(4n)").addClass("alt").prev().addClass("alt");

但它仍然计算错误地应用了样式。

如何设置一组选定元素,以便在将添加类放在元素上时我要排除的行不在计数中?

编辑: 我想条纹(在表格示例中)1,1a,3,3a,5,5a。所以我认为 1 和 1a 是一个组。我想删除其他所有组。

编辑:jsFiddle更新

4

1 回答 1

1

试试这个:

var rows=   $('.classme:last').nextAll().not(':has(th)');
rows.filter(':even').addClass('evenClass)

现在编辑 .skips lower th 标签

演示http://jsfiddle.net/YXDMH/

编辑:所有行不TH包括

var rows=   $('tr').not(':has(th)');
rows.filter(':even').addClass('evenClass').end().filter(':odd').addClass('odd')

http://jsfiddle.net/YXDMH/1/

于 2012-06-19T15:30:52.197 回答