2012-09-11 61 views
2

我有一个Instagram API调用请求使用CrookedSpaces标记的图像,当这些图像返回时,我正在筛选数据,以确保只有来自某个用户的图像(使用他们的用户ID)代码如下:显示某些用户标识的某些标记的012 Instagram图像某些标记

$(function() { 
$.ajax({ 
    type: "GET", 
    dataType: "jsonp", 
    cache: false, 
    url: "https://api.instagram.com/v1/tags/crookedspaces/media/recent/?count=100&access_token=TOKEN", 
    success: function(data) { 
     for (var i = 0; i < 31; i++) { 
      var igUID = data.data[i].user.id; 
      if(igUID === "USER ID") { 
       $(".instagram").append("\ 
        <div class='instagram-feed'>\ 
         <img class='instagram-image' src='" + data.data[i].images.standard_resolution.url +"' width='325px' alt='" + data.data[i].user.id + " " + igUID + "' onMouseOver=\"toggle_visibility('igImageHover" + i + "');\"/>\ 
          <div class='igHover' id='igImageHover" + i + "' onMouseOut=\"toggle_visibility('igImageHover" + i + "');\">\ 
          <div class='igHover2'>\ 
           SMALL TEST!\ 
          </div />\ 
          </div>\ 
        </div>\ 
       "); 
      } else { 
        console.log("Else portion of code ran " + elseCount + " time(s)."); 
        ++elseCount; 
       } 
     }     
    } 
}); 
}); 

但是,我只能够显示27个图像,因为有4个图像未由该特定用户ID发布。有没有办法强制for循环不增加?或者从我减去1而不将代码发送到无限循环?

这里是的jsfiddle - http://jsfiddle.net/UQcZP/

+0

你能发布[JS小提琴(HTTP://jsfiddle.demo),我们可以一起工作? –

+0

可能会使用返回的数组的大小作为条件,并在用户ID匹配时增加计数器,然后当您拥有所需数量的图像时跳出循环 – MrOBrian

回答

0

你可以使用一个while循环:

var i = 0; 
var used=0; 
while (used<31) 
{ 
    if (i < data.data.length){ 
    // .. Do your work here 
    // only increment used when you actually get a match 
    } 
    else 
    { 
    // Here we are past the end of the data and did not reach the 30 items, 
    // so just set the number of items to 31 to exit the loop. 
    used = 31; 
    } 
    i++;  
}​ 
+0

此答案完美工作,但是我找到了不同的路由编码。 想象我至少可以投票/关闭这个问题。 – tbremer