2009-05-08 9 views

Répondre

32
$("table:first > tr:first") 

ou

$("table:first").find("tr:first") 

ou

$("table:first").children("tr:first") 

ou

$("table").eq(0).children("tr").eq(0) 

Donc, si je comprends la question ...

suivi
$("table:eq(1) tr:has(table:eq(2))") 

se traduit par: obtenir toutes les années tr dans de la 2ème table si le tr a une 3ème tableau

ou

$("table").eq(1).children("tr:has(table:eq(2))") 
+0

Merci Chad, son fonctionnement (seulement la deuxième option). Mais la question suivante est si je veux sélectionner n'importe quelle rangée de la deuxième table dans ma page si elle contient 3 tables.La commande que vous avez suggérée ne réussit que pour la première ou la dernière table; Qu'en est-il des tables intermédiaires. Merci –

+0

jQuery est vraiment flexible et je devrais voir votre structure html pour fournir des exemples précis. Le premier exemple dans mon code ne fonctionnerait pas si vous aviez des tags dans votre tableau par exemple. S'il vous plaît poster un échantillon HTML et je peux fouetter les sélecteurs –

+0

Je suggérerais d'échanger '.children (" tr: first ")' pour '.find ('> tbody> tr,> tr')' depuis [certains navigateurs ajouter 'tbody' à toutes les tables et certaines ne le font pas] (http://stackoverflow.com/questions/1858267/how-to-find-tr-inside-table-with-depth-1) – user568458

0

Bien que pas jQuery spécifique, j'ai été présenté à dom sélecteurs à ce w3c selectors page. C'est très détaillé mais plein d'exemples complexes.

+0

et ce que la dernière version de jQuery supporte grâce à leur moteur de sélection, Sizzle: http://wiki.github.com/jeresig/sizzle –

1

En utilisant la méthode eq() de jQuery, vous pouvez spécifier l'index de l'élément que vous voulez obtenir.
Cela permet de sélectionner la première ligne de la deuxième table trouvée dans les DOM

$('table:eq(1) tr:first') 
+0

effectivement qui va sélectionner la première rangée dans la 3ème table. eq() est zéro base –

+0

Vous avez raison Chad Je tottaly oublié à ce sujet, corrigé. – duckyflip

5

Quelque chose que vous pouvez utiliser pour sélectionner la nième ligne dans la n-ième table:

$("table:eq(n) tr:eq(n)") 

avec n l'indice zéro de la table ou tr.

Exemple:

$("table:eq(2) tr:eq(4)") 

obtient la 5ème ligne de la 3ème table.

2

La réponse de svinto est certainement la façon la plus rapide, la plus rapide et la plus facile d'y parvenir. Si vous êtes vraiment concernés par la performance (par exemple la sélection au sein d'un complexe arbitraire boucle), cela pourrait se révéler le plus susceptible d'être un peu plus rapide:

$('tr').eq(0) 

Si vous ne devez pas utiliser seulement jQuery sélecteurs et nécessitent en fait l'élément DOM <TR>, vous pouvez utiliser:

$('table')[0].rows[0] 

Autre possibilité:

$('tr')[0] 
Questions connexes