2012-05-29 40 views
1

我在這裏有一個小問題與JavaScript循環。如何在javascript/jquery循環中打包x項後的元素?

我有一個單擊方法,它從json文件接收數據並將該內容放入div。

在jquery ajax成功方法看起來像這樣。

'success' : function(data) { 
       items.push('<div class="home-page-slide-item"><ul>'); 
     $.each(data, function(i, item) { 
      if(!item.noData) { 
       if(i % 7 == 0) { 
       items.push('</ul></div><div class="home-page-slide-item"><ul>'); 
      } 

      items.push('<li><a href="' + item.link + '"><img src="' + item.poster + '" /><span>' + item.title + '</span></a></li>'); 
      } 
       }); 
       $("div#" + $.cookie('type') + "-slides .home-page-slides").html(items.join('')); 
     } 

在每7個列表項目之後,它必須包裝在ul和div標籤中。
它會自動換行,但它在此循環之前還會添加第一個額外的div> ul標籤,以及如何刪除它?如何在成功方法「items」數組中重新排序以獲得想要的結果?

這是我得到的屏幕。

Here is the screen of what I get.

回答

0

變化

if(i % 7 == 0) { 

if(i > 0 && i % 7 == 0) { 

這是因爲0 % 7 == 0

2
if(i % 7 == 0 && i > 0) { //skip first occasion since 0 % 7 === 0 

} 
+0

謝謝你,爲我工作(item.noData & & I = 0!)) –

0

我想你檢查是否(I%7 == 0)推前。你必須這樣做推 後試試這個

'success' : function(data) { 
       items.push('<div class="home-page-slide-item"><ul>'); 
     $.each(data, function(i, item) { 


      items.push('<li><a href="' + item.link + '"><img src="' + item.poster + '" /><span>' + item.title + '</span></a></li>'); 

      if(!item.noData) { 
       if(i % 7 == 0) { 
       items.push('</ul></div><div class="home-page-slide-item"><ul>'); 
      } 


      } 
       }); 
       $("div#" + $.cookie('type') + "-slides .home-page-slides").html(items.join('')); 
     } 
0

不爲0%7 = 0?我想你也應該檢查I = 0,有點刪除這種情況下,像這樣的:如果 { ... }