2010-12-15 74 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');