我注意到严格使用 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/