2009-06-25 7 views
3

Je souhaite appliquer l'alignement droit sur la dernière cellule de chaque ligne de table, en ignorant la première table de la page et en ignorant la première ligne de chaque table.jQuery selector pour chaque ligne sauf la première sur chaque table sauf

j'écrit ce qui suit:

$("table:gt(0) tr:gt(0) td:last-child").css("text-align", "right"); 
  1. Les tables après la première sont sélectionnés. BIEN.
  2. La dernière cellule de chaque ligne est alignée à droite. BIEN.
  3. La première ligne de la première table de l'ensemble de résultats est ignorée. BIEN.
  4. Chaque première ligne des tables suivantes de l'ensemble de résultats a le style appliqué. MAL.

J'ai essayé de passer une fonction à la méthode "each" de l'ensemble encapsulé, mais cela ne fonctionne pas. Des idées?

Répondre

14

Vous étiez presque là.

$("table:gt(0)").find("tr:gt(0) td:last-child").css("text-align", "right"); 

autrement, tr: gt (0) est toujours vrai parce que jquery regarde chaque B, pas chaque B dans chaque tableau.

+0

Génial! C'est ce qu'il a fait. –

0

Il y a probablement un meilleur moyen, mais une idée pourrait être d'ajouter une classe à la première ligne de chaque table que vous ne voulez pas avoir le style et filtrer les dehors avec un (.myclass).

De même, ajoutez des classes aux tables auxquelles vous souhaitez que les styles soient destinés.

1

Qu'y a-t-il de mal à utiliser le DOM pour sélectionner vos tables et à utiliser jQuery pour appliquer vos styles aux tables? trop de lignes de code?

1
$("table:gt(0) tr").each(){ 
    if($(this).not(":first-child")){ 
      $(this).find("td:last-child").css("text-align","right"); 
    } 
} 

pas le meilleur moyen probablement, mais voici comment je le ferais.

+0

Merci, cela ressemble à une bonne approche aussi. J'ai essayé quelque chose de similaire mais je n'ai pas compris. –

2

essayer

$("table:gt(0) tr:not(:first-child) td:last-child").css("text-align", "right"); 

comme gt (0) ne fait référence à l'index dans l'objet jQuery que vous construisez, pas la table.

+0

Cela fonctionne aussi. Merci. –

Questions connexes