2017-08-02 174 views
0

我有一個簡單的循環,通過JSON數據循環並計算有多少個對象。對於每第四個對象,我想將1加到一個計數器上,以便在技術上將對象分組爲4個。如果索引是4的倍數加1計數器 - JQUERY

我看起來似乎沒有正確,它每次都會返回相同的值。也許別人可能知道。

如果您檢查console.log();你可以看到postCount保持不變。

如果需要,我已經包含一個指向JSON文件的鏈接。您將只需更改Ajax調用的URL。

下面請參閱代碼 -

CODE -

var imgTitle; 
 
var imgLink; 
 

 
$.ajax({ 
 
    type: 'GET' 
 
    , url: 'http://www.capetownetc.com/api/get_category_posts/?slug=news' 
 
    , data: { 
 
     get_param: 'value' 
 
    } 
 
    , dataType: 'jsonp' 
 
    , success: function(data) { 
 
    
 
     $.each(data.posts, function(i){ 
 
      imgTitle = data.posts[i].title; 
 
      imgLink = data.posts[i].thumbnail_images.medium.url; 
 
      console.log(imgTitle); 
 
      
 
      var postCount = 0; 
 
      
 
      if((i + 1) % 4 === 0){ 
 
       postCount = postCount+= 1; 
 
       console.log(postCount); 
 
      } 
 

 
     }); 
 
     
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

JSON Data File

+1

p取代

postCount = postCount+= 1; 

ut'var postCount = 0;''.each'循環之外 –

+0

哇,我是一個非常愚蠢的人。是因爲它每次都重置變量嗎? – Darian

+0

是的,正是這樣,你每次都重置它 - 很高興它幫助 –

回答

0

按我的意見之外:

var postCount = 0;$.each循環之前......有它裏面被重置它在每一個「每個」

正如意見中也提到,你可以用

postCount++; 
2

postCount被分配爲0每次。你需要把這個循環之外:

var imgTitle; 
 
var imgLink; 
 

 
$.ajax({ 
 
    type: 'GET', 
 
    url: 'https://www.capetownetc.com/api/get_category_posts/?slug=news', 
 
    data: { 
 
    get_param: 'value' 
 
    }, 
 
    dataType: 'jsonp', 
 
    success: function(data) { 
 
    var postCount = 0; 
 
    $.each(data.posts, function(i) { 
 
     imgTitle = data.posts[i].title; 
 
     imgLink = data.posts[i].thumbnail_images.medium.url; 
 
     console.log(imgTitle); 
 
     if ((i + 1) % 4 === 0) { 
 
     postCount++; 
 
     console.log(postCount); 
 
     } 
 
    }); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

0

由於達倫·斯威尼 -

放VAR postCount = 0;在$。每個循環