2010-12-15 71 views
4

我知道每个函数遍历一个数组。有没有办法像(this [i])那样访问indice?我需要能够将当前元素的pubDate与前一个元素的pubDate进行比较,如果不同,则会输出新的pubdate。如何使用jquery获得前一个元素each()

$(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>"); 

     }); 

回答

-1

你可以使用这个并遍历

例如

this.parent() 

给你指数

i in your loop 
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是否为空。

+0

非常甜蜜,非常感谢! – steve 2010-12-15 16:19:37

+2

因为它对每一个都是非常具体的事情,所以我建议把它全部放到一个'(function(){// shanked //}()}的代码中',这将使'previous'超出其他任何东西的范围你的代码。 – 2010-12-15 16:23:10

+1

我第一次读到'// code shanked' – 2010-12-15 16:30:11

0

如何像

var previousDate = $(this).prev().find('pubDate');