2009-08-15 18 views
6

Puedo obtener la fila actual usando este código. El "este" es un enlace en una celda de la tabla en la fila.jquery - ir a la fila de la siguiente tabla según el nombre de la clase desde la ubicación actual de la fila?

$currentTR = $(this).parents('tr'); 

Estas dos líneas siguientes pueden hacer lo mismo, obtener el tr después de la fila actual.

$nextTR = $(this).parents('tr').next(); 
$nextTR = $(this).parents('tr').next('tr'); 

Si la salida me $nextTR.html() Veo lo que espero

no sé cuántas filas tengo que ir para llegar a la fila correcta, excepto por el nombre de la clase y hacerlo así no lo hace trabaja para mi.

$nextTR = $(this).parents('tr').next('.concept'); 
$nextTR = $(this).parents('tr').next('tr .concept'); 

Todo lo que consigo es nulo

El ejemplo de docs.Jquery link text utiliza este

$("p").next(".selected").css("background", "yellow"); 

Qué me estoy perdiendo aquí?

+0

El .Next () filtra los hermanos . Si el hermano se ajusta al selector, se guarda; de lo contrario, se filtra. En su caso esto significa que si el siguiente hermano del tr es de la clase de concepto, se devuelve, de lo contrario obtendrá un valor nulo. – Zed

+0

Veo lo que quiere decir, ¡duh, todavía estoy tratando de obtener la fila NEXT! – Breadtruck

Respuesta

11

Dale nextAll un tiro.

+5

Mierda, iba a llegar a una solución elegante utilizando la nueva función 'index', pero' $ (this) .closest ('tr'). NextAll ('tr.concept'). Eq (0) parece un ganador'. :) – hobbs

+0

Así que esto tiene sentido.¿Va nextAll al final de la página desde la posición actual y luego comienza de nuevo en la parte superior del dom y vuelve a la posición de inicio, y es así como se devuelven muchos elementos? – Breadtruck

+0

@Breadtruck - no. En su ejemplo nextAll devuelve todas las filas después de la fila "actual". –

0

Quiere recibir la siguiente que es de una cierta clase?

Usted podría intentar hacer .Next() y luego el control de la clase, tal vez?

estoy un poco confundido acerca de su pregunta, voy a admitir, ya que parece que ha proporcionado su propia respuesta ...

1

he tratado de recrear su html + javascript at jsbin y puedo reproducir el problema:

siblings() devuelve todas las filas 4, y puedo ver que dos de las filas tienen class="concept", pero next('.concept') no devuelve nada .

no está al lado() se supone que es un subconjunto de los hermanos()?


gracias por el comentario, ahora lo entiendo! Necesito los silbings, no el próximo.

+0

siguiente solo devuelve el siguiente elemento. Si el selector que envía a su llamada al próximo no coincide con el siguiente elemento, su conjunto de resultados estará vacío. –

0

Supongamos que, usted tiene algo de HTML, como a continuación:

HTML:

<tr class="current_tr"> <!-- This is your current tr --> 
... 
..... 
... 
</tr> 

<tr class="nextRowClass"> <!-- You need to find this tr with the class--> 
... 
..... 
... 
</tr> 

JS:

var current_row = $('tr.current_tr'); 
//You can get next row with the class as below 
var next_row_with_class = $(current_row).next("tr.nextRowClass"); 
Cuestiones relacionadas