2009-01-23 9 views
7

Je veux chaque cellule de chaque ligne sauf la dernière de chaque rangée. J'ai essayé:jQuery: comment sélectionner toutes les cellules d'une table à l'exception du dernier de chaque rangée?

$("table tr td:not(:last)") 

mais cela semble m'avoir donné toutes les cellules sauf la toute dernière dans la table. Pas tout à fait ce que je veux. Je suis sûr que c'est simple mais je suis encore en train d'enrouler ma tête autour des sélecteurs.

+0

êtes-vous sûr de ne pas utiliser un '' à la place? alors seulement correspondre à tbody-rows. – jishi

Répondre

24

Essayez:

$('table tr td:not(:last-child)') 
+0

De la documentation: While: last correspond à un seul élément, cela correspond plus d'un: un pour chaque parent. – dbrien

+0

Et le gagnant par ordre chronologique ... :) – cletus

3

Essayez le sélecteur dernier enfant. Cela:

$("table tr td:not(:last-child)") 

sélectionnera toutes les cellules dans toutes les lignes à l'exception des cellules dans la dernière colonne.

+0

le tr est inutile car par défaut jquery ne cherche pas de descendants immédiats - pour obtenir les descendants immédiats seulement, vous devez utiliser le> "opérateur" –

7

Vous pouvez essayer

$("table td:not(:last-child)") 

ou

$("table td:not(:nth-child(n))") 

où n est index basé sur 1 d'un élément enfant

ou

$("table td").not(":last-child") 
+1

+1 pour le nième - Mention d'honneur – cletus

0

FWIW J'ai trouvé original fonctionne très bien (peut-être un enhancem ent au principal jQ depuis 2009?) ...

$("#myTable thead th:not(:last)").css("border-right","1px solid white"); 

La ligne d'en-tête de ma table a fond de la marine de sorte que la bordure blanche à droite fait la table regarder snaggletoothed et non correspondre à la frontière 1px noir des données

Questions connexes