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

时间:2009-06-11 15:56:17

标签: jquery

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

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

$('input')

当我有一个输入时,我还需要获得上一个和下一个输入。 类似的东西:

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

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


我知道我可以使用

迭代jQuery选择
.each(function(...

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

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

2 个答案:

答案 0 :(得分:18)

你可以这样做:

var inp = $('input');

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

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

答案 1 :(得分:8)

jQuery已根据您的要求提供内置支持,

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

next

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

previous