2011-08-29 223 views
6

我有一個圖像數組,然後我遍歷每個使用$ .each但我不能讓圖像顯示在頁面上,它最終沒有得到任何顯示。動態添加圖像jquery

<ul id="imagesList"> 
    <li>No images found</li> 
</ul> 

$(function(){ 
      //load image array 
      var images = {'image1':'assets/img/linkedin_30px.png','image2':'assets/img/twitter_30px.png'}; 
      $.each(images, function(){ 
       $('#imagesList').appendTo('<li>' + this + '</li>'); 
      }); 
     }); 

回答

14

您正在使用appendTo代替append。使用append

$.each(images, function(){ 
    $('#imagesList').append('<li><img src="' + this + '" /></li>'); 
}); 

或者,如果你堅持要用appendTo:如果你想顯示加載器,而圖像加載

$.each(images, function(){ 
    $('<li><img src="' + this + '" /></li>').appendTo('#imagesList'); 
}); 

,使用此:

var $list = $('#imagesList'); 

$.each(images, function(i, src) { 
    var $li = $('<li class="loading">').appendTo($list); 

    $('<img>').appendTo($li).one('load', function() { 
     $li.removeClass('loading'); 
    }).attr('src', src); 
}); 

這裏的小提琴:http://jsfiddle.net/fyar1u7a/1/

+0

咄!以另一種方式使用它。我感到愚蠢哈哈,謝謝! – Tsundoku

+0

@JosephSilber有沒有一種方法可以將加載程序添加到這些加載的圖像中? – KAD

+0

@JosephSilber謝謝,將檢查出來,我已經做出了一個解決方法,雖然.. http://greencool.co/green_cool_final/products/ – KAD

-1

有一點問題與你的appendTo函數。你以錯誤的方式使用它。

請嘗試以下代碼..

<ul id="imagesList"> 
    <li>No images found</li> 
</ul> 
$(function(){ 
      //load image array 
      var images = {'image1':'assets/img/linkedin_30px.png','image2':'assets/img/twitter_30px.png'}; 
      $.each(images, function(){ 
       $('<li>' + this + '</li>').appendTo('#imagesList'); 
      }); 
     });