Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery跨多个表交替使用行颜色_Jquery_Css - Fatal编程技术网

jQuery跨多个表交替使用行颜色

jQuery跨多个表交替使用行颜色,jquery,css,Jquery,Css,我注意到一个问题,即严格使用jquery交替行颜色。 你可以看看这个例子来了解我将要描述的内容 我使用CSS3来控制表上的条带化,这在多个表中都能正常工作 .table-zebra tbody > tr:nth-child(even) > td {background-color: lightgrey;} 每一排都有浅灰色条纹。计数从第一行开始 对于不支持CSS3的浏览器,我使用jquery来模拟这一点:(.table striped在本例中用于显示fiddle中的差异) 当我有多

我注意到一个问题,即严格使用jquery交替行颜色。 你可以看看这个例子来了解我将要描述的内容

我使用CSS3来控制表上的条带化,这在多个表中都能正常工作

.table-zebra tbody > tr:nth-child(even) > td {background-color: lightgrey;}
每一排都有浅灰色条纹。计数从第一行开始

对于不支持CSS3的浏览器,我使用jquery来模拟这一点:(.table striped在本例中用于显示fiddle中的差异)

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


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

据我所知,
:odd
应用于所有
中,因此您可以得到所描述的行为。我认为除了使用
.each()
之外,没有任何方法可以改变这一点,并使
:odd
相对于当前的
.table条带化

对于这种特定情况,尽管有一种解决方法,可以使用
:n子项

$(".table-striped tr:nth-child(:odd)").css("background-color", 'lightgrey');
虽然这适用于某个特定的
是其直接父项的奇数子项,因此如果您的
包含多个
CSS,则可能会做错误的事情。

CSS:

tr.even td {
    background-color: green;
}
tr.odd td {
    background-color: yellow;
}
JS:


odd
不是伪类,
:odd
是一个jQuery选择器,因此在使用
:n个子
时,不应该为
odd
设置
。我想编辑,但它是一个字符,所以它不会让我。
tr.even td {
    background-color: green;
}
tr.odd td {
    background-color: yellow;
}
 $('.table-striped > tbody').each(function () {
     $('tr:odd', this).addClass('odd').removeClass('even');
     $('tr:even', this).addClass('even').removeClass('odd');
 });