如何使用jquery获取前一个元素each()

时间:2010-12-15 16:11:20

标签: javascript jquery

我知道每个函数都在迭代一个数组。有没有办法像([i])那样访问indice?我需要能够将当前元素的pubDate与前一个元素的pubDate进行比较,如果它不同,则输出一个新的pubdate。

    $(data).find('item').each(function(i, value){
            var title = $(this).find('title').text().replace(/\w+\s+\(.*?\)/, "");
            var link = $(this).find('link').text();
            var pubDate = $(this).find('pubDate').text();
            alert(title); 
            alert(link);
            alert(pubDate);
            $('#events').append("<p>" + title + "<br/>" + link + "</p>");

        });

3 个答案:

答案 0 :(得分:6)

许多潜在的方法之一是:

var previous = null;
$(data).find('item').each(function(i, value){
        if (previous) {
            ... do stuff with previous element ...
        }

        var title = $(this).find('title').text().replace(/\w+\s+\(.*?\)/, "");
        var link = $(this).find('link').text();
        var pubDate = $(this).find('pubDate').text();
        alert(title); 
        alert(link);
        alert(pubDate);
        $('#events').append("<p>" + title + "<br/>" + link + "</p>");

        previous = this;
    });

你必须检查previous是否为null,因为第一次迭代将包含一个空值(第一个元素没有任何前一个元素)。

答案 1 :(得分:0)

这样的东西
var previousDate = $(this).prev().find('pubDate');

答案 2 :(得分:-1)

你可以使用它并遍历

例如

this.parent() 

为您提供索引

i in your loop