跨多个表的 jQuery 交替行颜色

标签 jquery css

我注意到严格使用 jquery 交替行颜色的问题。 你可以看看这个fiddle有关我将要描述的内容的示例。

我正在使用 CSS3 来控制表格上的 strip 化,这在多个表格中都按预期工作。

.table-zebra tbody > tr:nth-child(even) > td {background-color: lightgrey;}

每个偶数行都带有浅灰色条纹。从第一行开始计数。

对于不支持 CSS3 的浏览器,我使用 jquery 来模仿这个:(.table-striped 用于此示例以显示 fiddle 的差异)

  $(".table-striped tr:odd").css("background-color", 'lightgrey');

当我有多个行数为奇数的表时,jquery 将继续从前一个表开始计数,这会错误地交替行。

除了使用 $.each 之外,在 jquery 中还有更简单的方法来处理这个问题吗?

最佳答案

据我所知,:odd应用于所有 <TR> s,因此您会得到您描述的行为。我不认为有任何方法可以改变它并制作 :odd相对于当前 .table-striped除了使用 .each() .

对于这种特定情况,虽然有一个解决方法 :nth-child :

$(".table-striped tr:nth-child(:odd)").css("background-color", 'lightgrey');

尽管这适用于特定的 <TR>是其直接 parent 的奇怪 child ,因此如果您的 <TABLE> 可能会做错事s 包含多个 <TBODY>

关于跨多个表的 jQuery 交替行颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15789526/

相关文章:

css - 彼此对齐 2 个 div,一个固定,另一个有滚动条

css - 如何使用 SASS 获取长版本的计算结果

jquery - 如何通过 jquery 将数据属性添加到 img 标签?

javascript - isScrolledIntoView 对象列表

javascript字符串将<替换为<

jquery - Bootstrap Button.js 代码理解

css - @font-face 图标在 IE 11 中不显示,所有其他浏览器都支持。使用 base64 网址

javascript - 在同一函数中使用 .toggle() 使用 jquery 更改图像

javascript - 单击多个 div 但只显示一个类 (Angular2)?

javascript - 在提交时使用 jquery 在另一个 div(显示)中显示表单值