如何从jQuery选择中获取上一个或下一个元素?
基本上,我会有一组元素,比如所有输入:
$('input')
当我有一个输入时,我还需要获得上一个和下一个输入。 类似的东西:
$(this).prev('input')
$(this).next('input')
但是,输入不是兄弟,我不想只是下一个DOM元素。我想要jQuery选择中的下一个元素(在这种情况下是输入)。
我知道我可以使用
.each(function(...
但我不需要重复所有元素,只需要前后的元素。
元素也将动态排序(使用jQuery UI sortables)。
答案 0 :(得分:18)
你可以这样做:
var inp = $('input');
var index = inp.index(this);
var next = inp[index+1];
var prev = inp[index-1];
请注意prev
和next
,就像这样不是jQuery对象,而是DOM对象。要使它们成为jQuery对象,您需要将它们包装在$()
函数中。
答案 1 :(得分:8)