0

我正在使用这个漂亮的小 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>  

我怎样才能让它工作,所有表都以 开头<tr class="even">

4

3 回答 3

2

您必须遍历每个table脚本并将该脚本分别应用于每个脚本:

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

这是因为:even选择器被应用于匹配集中的所有元素,这将是所有tr元素的后代.rowchange元素。它不会考虑这些祖先.rowchange元素之间的差异。

这是一个工作示例

于 2013-01-11T09:58:48.200 回答
0

如果您用table作主选择器,find()您的排序将是正确的。

$('table.rowchange').find('tr:even').addClass("even");
于 2013-01-11T10:11:57.267 回答
0

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

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

这是一个jsFiddle 示例

于 2013-01-11T10:12:04.443 回答