Javascript 访问$(';.class';)中的上一个元素。每个()
在Javascript 访问$(';.class';)中的上一个元素。每个(),javascript,jquery,Javascript,Jquery,在$('.class')的特定迭代中,是否有方法访问上一个或下一个元素其中类为“class”的元素不是同级元素 我可以通过遍历DOM树来实现这一点。但我想知道是否有更具体、更优雅的解决方案 当前代码: $('.slider-range').each(function(index){ var temp = $(this).closest('.panel').next('.panel').find('.slider-range'); //do something with t
$('.class')的特定迭代中,是否有方法访问上一个或下一个元素代码>其中类为“class”的元素不是同级元素
我可以通过遍历DOM树来实现这一点。但我想知道是否有更具体、更优雅的解决方案
当前代码:
$('.slider-range').each(function(index){
var temp = $(this).closest('.panel').next('.panel').find('.slider-range');
//do something with temp
});
您必须“存储”变量中的“选定”项,并使用传递给回调的索引,如下所示:
var range = $('.slider-range');
range.each(function(index){
var temp = index > 0 ? range[index - 1] : null;
//do something with temp
});
我在索引的值上添加了一个条件,使temp
变量null
如果索引为0
编辑:使用索引-1
更正以“选择”上一项。在循环中,您可以访问jquery对象集合中的当前索引
$('.slider-range').each(function(index){
var temp = $(this).closest('.panel').next('.panel').find('.slider-range');
//do something with temp
});
您可以使用此选项获取该集合中的任何其他项:
var items = $(".slider-range");
items.each(function(index) {
if (index > 0) {
var prev = items[index-1];
// do something with prev
}
});
@SudharsanS“他们不是兄弟姐妹的地方”需要HTML来知道兄弟姐妹在哪里以及周围其他元素的位置,你不这么认为吗?@zer00ne不太可能,no@kd394取决于“previous元素”与“.prev()元素”的定义。OP知道他们不能使用.prev(),因为他们不是兄弟姐妹,所以问题就来了。@freedomn-m我需要它来制作一个有效的演示,这会花费我太长的时间去猜测。