Dynamically add images jquery

34,258

You are using appendTo instead of append. Use append:

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

Or, if you insist on using appendTo:

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

If you want to show a loader while the image is loading, use this:

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);
});

Here's the fiddle: http://jsfiddle.net/fyar1u7a/1/

Share:
34,258
Pandy
Author by

Pandy

I have no special talent. I am only passionately curious... -Albert Einstein

Updated on July 27, 2020

Comments

  • Pandy
    Pandy almost 4 years

    I have an array of images and then I iterate through each using $.each but I can't get the images to show on the page, it ends up with nothing getting showed.

    <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>'); 
                });
            });
    
  • Pandy
    Pandy almost 13 years
    duh! using it the other way arround. I feel stupid haha, thanks!
  • KAD
    KAD almost 9 years
    @JosephSilber is there a way to add loader to these loaded images?
  • KAD
    KAD almost 9 years
    @JosephSilber thanks, will check it out I have made a workaround though .. greencool.co/green_cool_final/products