2010-12-15 20 views
4

各関数が配列に対して繰り返し処理を行うことはわかっています。インディスにアクセスする方法はありますか(この[i])?私は、現在の要素の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; 
    }); 

最初の繰り返しにはnull値が含まれているため(最初の要素には前の要素がないため)、previousがnullでないかどうかを確認する必要があります。

+0

のようなものについてかなり甘い、ありがとう! – steve

+2

それぞれにはかなり特殊なことがあるので、 '(function(){// code by shanked //}())'の中に入れておくことをお勧めします。あなたのコード。 –

+1

私はまずそれを 'シャンクされるコード//と読みました。 –

0

どう

var previousDate = $(this).prev().find('pubDate'); 
関連する問題