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 に答える