使用jQuery从选择中获取下一个或上一个元素

chr*_*035 16 jquery

如何从jQuery选择中获取上一个或下一个元素?

基本上,我会有一组元素,比如所有输入:

$('input')
Run Code Online (Sandbox Code Playgroud)

当我有一个输入时,我还需要获得上一个和下一个输入.就像是:

$(this).prev('input')
$(this).next('input')
Run Code Online (Sandbox Code Playgroud)

但是,输入不是兄弟,我不想只是下一个DOM元素.我想要jQuery选择中的下一个元素(在这种情况下是输入).


我知道我可以通过jQuery选择迭代

.each(function(...
Run Code Online (Sandbox Code Playgroud)

但我不需要重复所有元素,只需要前后的元素.

元素也将动态排序(使用jQuery UI sortables).

Pim*_*ger 18

你可以这样做:

var inp = $('input');

var index = inp.index(this);
var next = inp[index+1];
var prev = inp[index-1];
Run Code Online (Sandbox Code Playgroud)

请注意,prevnext,就像这不是jQuery的对象,但现在DOM对象.要使它们成为jQuery对象,您需要将它们包装在$()函数中.


Sub*_*Rao 8

jQuery根据您的需要内置了支持,

$($('input')[0]).next('input')
Run Code Online (Sandbox Code Playgroud)

下一个

 $($('input')[0]).prev('input')
Run Code Online (Sandbox Code Playgroud)

以前