如何从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)
请注意,prev和next,就像这不是jQuery的对象,但现在DOM对象.要使它们成为jQuery对象,您需要将它们包装在$()函数中.
jQuery根据您的需要内置了支持,
$($('input')[0]).next('input')
Run Code Online (Sandbox Code Playgroud)
$($('input')[0]).prev('input')
Run Code Online (Sandbox Code Playgroud)