2013-04-05 19 views
4

因此,我已获取和分析一些数据,我使用“每个”来显示它:格式化每个语句结果在一个网格内?

$.ajax({ 
    url  : 'http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=10&callback=?&q=' + encodeURIComponent('http://news.google.com/news?pz=1&cf=all&ned=uk&hl=en&output=rss'), 
    dataType : 'json', 
    success : function (data) { 
     if (data.responseData.feed && data.responseData.feed.entries) { 
      $.each(data.responseData.feed.entries, function (i, e) { 
       $('.row').append("<div class=\"threecol\"">title: " + e.title + "<br></div>"); 
      }); 
     } 
    } 
}); 

而对于电网正常运行,它需要遵循这种结构:

<div class="container"> 
    <div class="row"> 
     <div class="threecol"> 
     </div> 
     <div class="threecol"> 
     </div> 
     <div class="threecol"> 
     </div> 
     <div class="threecol last"> 
     </div> 
    </div> 
</div> 

所以我的问题是,我将如何对每个陈述进行排序,并将每4个项目放入一个新行,并使每个第4个项目都具有“threecol last”类而不是“threecol”?

+1

一个计数器和一个如果 - else结构? – 2013-04-05 15:18:38

回答

2

$.each循环之前添加计数器,然后添加一些简单的条件插入rows在正确的位置,并指定正确的类:

if (c % 4 == 0) { 
    $('<div />').addClass('row').appendTo('.container'); 
} 

$('<div />').addClass('threecol') 
      .text('title: ' + e.title) 
      .appendTo('.row:last'); 

if (c % 4 == 3) { 
    $('.threecol:last').addClass('last'); 
} 

c++; 
+1

我相信,对于jQuery中每个循环内部的函数,传递参数'i'给出jQuery数组内的选择索引,因此您可以取消外部计数器。 – ckersch 2013-04-05 15:32:57

+0

谢谢,工作过! +1,000,000给你先生! – 2013-04-05 15:35:11

+0

@ckersch它确实给了索引,但它并不总是一个连续的数值 – billyonecan 2013-04-05 16:22:16