我有以下两个表和jQuery:
<table class="grid" />
<table class="grid custom" />
$('.grid tr:even').addClass('alt');
这里发生的事情是两个表都是jQuery的目标。第一个表格很好,因为正在选择偶数行,但是在第二个表格中选择了奇数。
表1(网格)
第1行
第2行 - 背景颜色(这是正确的)
表2(网格定制)
第1行 - 背景颜色(这是错误的)
第2行
我该如何解决这个问题?
答案 0 :(得分:3)
问题是$('.grid tr:even')
选择器正在将:even
条件应用于.grid tr
返回的所有行的集合。您希望在每个表的基础上应用:even
。
顺便说一句,你可以在CSS中完全执行此操作:http://jsfiddle.net/ahf9q/1/
编辑:原来jQuery有nth-child
选择器,就像CSS那样运行。如果你打算在jQuery而不是CSS中这样做,你可以这样做:
$('.grid tr:nth-child(odd)').addClass('alt');
答案 1 :(得分:2)
$('.grid').each(function(){
$(this).find("tr:even").addClass('alt');
});
应该这样做。
答案 2 :(得分:1)
试试这个
$('.grid').each(function(){
$("tr:even", this).addClass('alt');
});