sélecteurs jQuery de pair/impair nombre de lignes dans une table
Le code dans le premier Bloc de Code est le code source. Après le code source est en cours d'exécution. Le code sera modifié (Voir le 2ème Bloc de Code).
Je veux la classe(c'est à dire "même" et "étrange") de tag est affiché dans la "table1". Toutefois, actuellement, un nid de table (c'est à dire 'table2') a également "même" et "étrange" de la classe de chaque balise.
Quelqu'un peut-il m'aider? Merci à l'avance.
-----------Premier Bloc De Code--------------
<head>
<script type="text/javascript">
$(document).ready(function(){
$("#table1 tr:odd").addClass("odd");
$("#table1 tr:not(.odd)").addClass("even");
});
</script>
</head>
<body>
<table id="table1">
<tr>
<td>AAA</td>
<td>CCC</td>
</tr>
<tr>
<td>BBB</td>
<td>DDD</td>
</tr>
<tr>
<td>
<table id="table2">
<tr></tr>
<tr></tr>
<table>
</td>
</tr>
</table>
</body>
-----------2e Bloc de Code---------------
<table id="table1">
<tr class="even">
<td>AAA</td>
<td>CCC</td>
</tr>
<tr class="odd">
<td>BBB</td>
<td>DDD</td>
</tr>
<tr class="even">
<td>
<table id="table2">
<tr class="even"></tr>
<tr class="odd"></tr>
<table>
</td>
</tr>
</table>
- Vous devriez donner à votre question de façon plus significative titre.
Vous devez vous connecter pour publier un commentaire.
Toutes les posté de réponse sont presque droit..
De nombreux navigateurs automatiquement ajouter un
tbody
à votre table, même si vous n'ajoutez pas un vous-même. Donc#table1 > tr
ne correspondra pas parce quetr
n'est pas un enfant direct detable
. Votre meilleur pari est d'utiliser le ci-dessus et ajouter explicitement unetbody
pour les navigateurs qui ne le font pas pour vous.http://jsfiddle.net/5ETAD/1/
Il devrait être:
tbody
.Vous pouvez utiliser les éléments suivants (notez le signe supérieur à):
Cela permettra de sélectionner uniquement les enfants immédiats tr.
D'éviter toute redondance des DOM de la traversée, vous pouvez utiliser quelque chose comme ceci:
Utiliser le enfant direct sélecteur.
Aussi, vous pouvez utiliser :même au lieu de :not(.impair)
Vous avez juste besoin d'utiliser de façon appropriée les sélecteurs CSS. Essayez: