2009-06-11 158 views
16

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

基本上,我将有一组元素,说所有输入:

$('input') 

当我有一个输入,我还需要得到一个和下一个输入。 喜欢的东西:

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

然而,输入是不是兄弟姐妹,我不希望只是接下来的DOM元素。我想要jQuery选择中的下一个元素(在这种情况下是输入)。


我知道我可以通过一个jQuery选择与

.each(function(... 

迭代,但我并不需要去了所有的元素,只是一个之前和之后。

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

+0

等等都是未来,儿童和以前的父母? – TStamper 2009-06-11 16:02:50

+0

他们在不同的div容器中排序。 – chrismar035 2009-06-11 16:06:59

回答

18

你可以做这样的事情:

var inp = $('input'); 

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

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

8

的jQuery已经内置支持所要求的你,

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

next

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

previous