Jquery 多个表中的$(“偶数”).addClass(“偶数”)

Jquery 多个表中的$(“偶数”).addClass(“偶数”),jquery,Jquery,我使用这个漂亮的litte jQuery Scritp来更改表行的类别: $(".rowchange tr:even").addClass("even"); 但当我在同一页上使用多个表时,结果可能是这样的: <table class="rowchange"> <tr class="even"><td>...</td></tr> <tr><td>...</td></tr> &

我使用这个漂亮的litte jQuery Scritp来更改表行的类别:

$(".rowchange tr:even").addClass("even");
但当我在同一页上使用多个表时,结果可能是这样的:

<table class="rowchange">  
<tr class="even"><td>...</td></tr>  
<tr><td>...</td></tr>   
<tr class="even"><td>...</td></tr>  
</table>  
...
<table class="rowchange">
<tr><td>...</td></tr>
<tr class="even"><td>...</td></tr>
<tr><td>...</td></tr>
</table>  

...  
...   
...  
...
...
...
...

如何使所有表都以
开始工作?

您必须迭代每个
,并将该脚本分别应用于每个表:

$(".rowchange").each(function () {
    $(this).find("tr:even").addClass("even");
});
这是因为
:偶数
选择器正在应用于匹配集中的所有元素,这些元素将是
tr
元素的后代。它不会考虑那些祖先
.rowchange
元素之间的差异


这是一个。

如果您使用
表作为主选择器,并且
查找()
您的顺序将是正确的

$('table.rowchange').find('tr:even').addClass("even");

您也可以使用此选择器选择它:

$(".rowchange").find("tr:even").addClass("even");

这是一个肮脏的流程-如何显示它不工作?从这个问题上看,这是我所期望的效果。(表是独立处理的,而不是在一个块中处理所有的
tr
元素)对不起,这是有效的。两张表之间的三个点使它看起来是错误的。我的mistake@Dirty-流-啊,是的,我知道这会让人困惑。我将在我的答案中添加一个更新的链接。是的,它工作得非常完美:-)许多thanx用于即时帮助!