如何使用jQuery定位多类元素

时间:2011-08-19 19:50:26

标签: jquery

我有以下两个表和jQuery:

<table class="grid" />
<table class="grid custom" />

 $('.grid tr:even').addClass('alt');

这里发生的事情是两个表都是jQuery的目标。第一个表格很好,因为正在选择偶数行,但是在第二个表格中选择了奇数。

表1(网格)
第1行 第2行 - 背景颜色(这是正确的)

表2(网格定制)
第1行 - 背景颜色(这是错误的)
第2行

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:3)

http://jsfiddle.net/Ftk5n/

问题是$('.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');

http://jsfiddle.net/Ftk5n/2/

答案 1 :(得分:2)

$('.grid').each(function(){
    $(this).find("tr:even").addClass('alt');
});

应该这样做。

答案 2 :(得分:1)

试试这个

$('.grid').each(function(){
    $("tr:even", this).addClass('alt');
});