2009-06-11 12 views
16

¿Cómo puedo obtener el elemento anterior o siguiente de una selección de jQuery?Usando jQuery para obtener el elemento siguiente o anterior de una selección

Básicamente, voy a tener un conjunto de elementos, por ejemplo todas las entradas:

$('input') 

Cuando tengo una sola entrada, también necesitará conseguir la entrada anterior y siguiente. Algo así como:

$(this).prev('input') 
$(this).next('input') 

Sin embargo, las entradas no son hermanos y no quiero sólo el siguiente elemento DOM. Quiero el siguiente elemento en la selección jQuery (entradas en este caso).


Sé que puedo iterar a través de una selección de jQuery con

.each(function(... 

Pero no es necesario ir más de todos los elementos, sólo el uno antes y después.

Los elementos también se ordenarán dinámicamente (usando jQuery UI sortables).

+0

también lo son los siguientes, los niños y el padre anterior? – TStamper

+0

Se encuentran en diferentes contenedores div para el ordenable. – chrismar035

Respuesta

18

se podría hacer algo como esto:

var inp = $('input'); 

var index = inp.index(this); 
var next = inp[index+1]; 
var prev = inp[index-1]; 

Tenga en cuenta que prev y next, al igual que este no son objetos jQuery pero DOM del objeto. Para que sean objetos jQuery, debe envolverlos en la función $().

+0

¡Funcionó a la perfección! ¡Gracias! – chrismar035

8

jQuery ha construido en el soporte como es requerido por usted,

$($('input')[0]).next('input') 

next

$($('input')[0]).prev('input') 

previous

Cuestiones relacionadas