2012-03-01 130 views
0

this page我試圖限制顯示的圖像數量。我嘗試了以下,但它不斷崩潰標籤。

while (screenshots.length < 5) { 
    $.each(images, function (i, el) { 
        startHTML += "<a href=\"" + link + "\" title=\"" + title + "\">"; 
        startHTML += "<img src=\"" + el + "\" alt=\"\" width=\"200px\" height=\"200px\">"; 
        startHTML += "</a>"; 
       }); 
} 

的圖像都可以從JSON ..全碼拉到:

var screenshots = $('#recent-screenshots span'); 



     // get screenshots we can pass limit here if we want 
     $.getJSON("gallery/getScreenshots.php", function (data) { 
      var startHTML = ""; 
      $.each(data, function (i, image) { 
       var link = image.link; 
       var title = image.title; 
       var images = image.images; 

       $.each(images, function (i, el) { 
        startHTML += "<a href=\"" + link + "\" title=\"" + title + "\">"; 
        startHTML += "<img src=\"" + el + "\" alt=\"\" width=\"200px\" height=\"200px\">"; 
        startHTML += "</a>"; 
       }); 


      }); 
      screenshots.html(startHTML); 

     }); 
    }); 

什麼我錯在這裏做什麼?

+3

while循環永遠不會終止 – scibuff 2012-03-01 10:07:28

+0

什麼是'data'反正解決?你可以請發佈其內容? – Tomalak 2012-03-01 10:13:36

+0

數據是json的結果,它是鏈接= http://site.com title = threadtitle和images = imageurl – nowayyy 2012-03-01 10:20:21

回答

1

你不是遞減/遞增控制我認爲的循環的變量。你可以嘗試像

var maxNumber = screenshots.length, c = 0; 
while (c < maxNumber) { 
    $.each(images, function (i, el) { 
        startHTML += "<a href=\"" + link + "\" title=\"" + title + "\">"; 
        startHTML += "<img src=\"" + el + "\" alt=\"\" width=\"200px\" height=\"200px\">"; 
        startHTML += "</a>"; 
       }); 
     c++; 
} 
2

這是一個無限循環:

while (screenshots.length < 5) { 
    $.each(images, function (i, el) { 
        startHTML += "<a href=\"" + link + "\" title=\"" + title + "\">"; 
        startHTML += "<img src=\"" + el + "\" alt=\"\" width=\"200px\" height=\"200px\">"; 
        startHTML += "</a>"; 
       }); 
} 

您while循環條件涉及screenshots.length,但你永遠不修改while循環中該值,所以如果條件最初是真實的,它在while循環中永遠保持真實。

您可以通過手動迭代的影像,只是做的長度小於或5

for (var i = 0, len = Math.min(images.length, 5); i < len; i++) { 
    startHTML += "<a href=\"" + link + "\" title=\"" + title + "\">"; 
    startHTML += "<img src=\"" + images[i] + "\" alt=\"\" width=\"200px\" height=\"200px\">"; 
    startHTML += "</a>"; 

}