jQuery/CSS:将类分配给表取决于它们的顺序
jQuery/CSS: Assigning classes to a table depends on their order
我有这个表:
<tbody>
<tr>
<th></th>
<th></th>
<th></th>
<th></th>
</tr>
<tr>
<th></th>
<th></th>
<th></th>
<th></th>
</tr>
<tr>
<th></th>
<th></th>
<th></th>
<th></th>
</tr>
<tr>
<th></th>
<th></th>
<th></th>
<th></th>
</tr>
...
</tbody>
而且它还在继续。。。我想在文档上准备添加类奇数和偶数取决于他们的位置。以这样的方式结束:
<tbody>
<tr class="odd">
<th></th>
<th></th>
<th></th>
<th></th>
</tr>
<tr class="even">
<th></th>
<th></th>
<th></th>
<th></th>
</tr>
<tr class="odd">
<th></th>
<th></th>
<th></th>
<th></th>
</tr>
<tr class="even">
<th></th>
<th></th>
<th></th>
<th></th>
</tr>
...
</tbody>
实现这一目标的方法是什么?我是否必须计算我有多少个表,并根据它们的位置添加类?对我来说,这听起来不安全/不合适。
查看nth-child
伪选择器(MDN链接)。
如果您只想分配一些样式,请使用:
tr:nth-child(2n+1) { // odd rows }
tr:nth-child(2n) { // even rows }
编辑:
正如David Thomas所建议的那样,这将提高可读性:
tr:nth-child(odd) { // odd rows }
tr:nth-child(even) { // even rows }
如果您不需要纯CSS解决方案,请使用jQUery并使用:odd
/:even
选择器。否则Sirko的解决方案会更好。(请注意,第n个子方法不会在IE8及以下版本上运行)
$("table tr:odd").addClass("odd");
$("table tr:even").addClass("even");
相关文章:
- ajax请求的顺序总是不同的
- 按照选项卡索引的顺序循环一个jQuery选择
- 匹配一个单词,其中候选人可以跨越顺序组(跨度)
- 按顺序添加和删除类
- 按我自己的类克隆另一个元素的内容和顺序
- Javascript-根据赋值顺序,按键合并对象数组
- jquery移动对齐按钮取决于内容大小
- 2个backbone.js集合,具有相同的模型,但排序顺序不同
- querySelector/getElementByClassName嵌套项的顺序
- 动态更改'汉堡包'导航取决于BG图像
- 以不同的顺序输出数据
- 重新排列HTML元素的顺序并更改内容
- 多个jQuery.on()事件无法运行xBrowser(取决于顺序)
- 打字稿的编译取决于文件的顺序
- 填充路径取决于绘制顺序
- jQuery/CSS:将类分配给表取决于它们的顺序
- CSS转换取决于样式分配的顺序
- jQuery .each()迭代由HTML类-不一致的行为取决于顺序类定义
- CORS错误取决于图像参数的设置顺序
- D3js的select .enter()取决于新添加数据的顺序