2009-05-08 54 views

Respuesta

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

o

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

o

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

o

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

Así que si entiendo la pregunta de seguimiento ...

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

se traduce en: obtener alguna de TR en la tabla segunda de si el TR tiene una tercera tabla

o

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

Gracias Chad, está funcionando (solo segunda opción). Pero la siguiente pregunta es si quiero seleccionar cualquier fila de la segunda tabla en mi página si contiene 3 mesas.El comando que sugirió tiene éxito solo para la primera o la última tabla; ¿Qué hay de las tablas intermedias? Gracias –

+0

jQuery es muy flexible y necesitaría ver su estructura html para proporcionar ejemplos precisos. El primer ejemplo en mi código no funcionaría si tuviera etiquetas en su tabla, por ejemplo. Por favor, publique un ejemplo de HTML y puedo acelerar los selectores –

+0

Sugiero intercambiar '.children (" tr: first ")' for '.find ('> tbody> tr,> tr')' ya que [algunos navegadores agregan 'tbody' para todas las tablas y algunas no]] (http://stackoverflow.com/questions/1858267/how-to-find-tr-inside-table-with-depth-1) – user568458

0

Aunque no jQuery específica, me presentaron a dom selectores en este w3c selectors page. Es muy detallado pero está lleno de ejemplos intrincados.

+0

y lo último que admite jQuery a través de su motor de selección, Sizzle: http://wiki.github.com/jeresig/sizzle –

1

Utilizando el método de jQuery eq() puede especificar el índice del elemento que desea obtener.
Esto seleccionará la primera fila de la segunda tabla que se encuentra en el DOM

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

en realidad que seleccionará la primera fila en la tercera tabla. eq() está basado en cero –

+0

Tienes razón Chad I tottaly se olvidó de esto, reparado. – duckyflip

5

Algo que puede utilizar para seleccionar la enésima fila en la tabla de orden n:

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

siendo n el índice basado en cero de la tabla o tr.

Ejemplo:

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

tiene la quinta fila de la tercera tabla. respuesta

2

@ de svinto es sin duda el camino más corto, más rápido y más fácil de lograr esto. Si usted es realmente de que se trate con el rendimiento (por ejemplo, la selección dentro de un complejo arbitraria de bucle), esto podría muy probablemente resultará ser un poco más rápido:

$('tr').eq(0) 

Si no es necesario utilizar solamentejQuery selectores y realmente requieren el elemento DOM <TR>, puede utilizar:

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

alternativa:

$('tr')[0] 
Cuestiones relacionadas