访问$('。class')中的前一个元素.the each()

时间:2017-06-29 09:39:55

标签: javascript jquery

$('.class').each() loop;的某个迭代中,有没有办法访问上一个或下一个元素?类'class'的元素不是兄弟姐妹?

我能够通过遍历DOM树来完成这项工作。但我想知道是否有更具体和优雅的解决方案。

当前代码:

$('.slider-range').each(function(index){
  var temp = $(this).closest('.panel').next('.panel').find('.slider-range');        
  //do something with temp
});

2 个答案:

答案 0 :(得分:1)

你必须"存储" "选择"变量中的项目并使用传递给回调的索引,如下所示:

var range = $('.slider-range');
range.each(function(index){
    var temp = index > 0 ? range[index - 1] : null;        
    //do something with temp
});

我在索引值上添加了条件,如果索引为temp,则null变量0

修改:更正为index - 1至"选择"上一个项目。

答案 1 :(得分:0)

在循环中,您可以访问jquery对象集合中的当前index

$('.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
    } 
});