javascript - changing Images src with jquery -


i'm using code changing image src not working. if i'm write variables text values fox example:

track = '212'; artist = 'azealea banks'; 

it's changing last images src when i'm getting variables values neighbor span it's not working @ all.

my jquery code:

$(function () {     $(".plimg").attr("src",      function (index) {         var title = $(this).next('span.titletrack').text();         alert(title);         var array = title.split(' - ');         var track = array[0];         var artist = array[1];          var output;          $.ajax({             url: "http://ws.audioscrobbler.com/2.0/?method=track.search",             data: {                 track: track,                 artist: artist,                 api_key: "ca86a16ce762065a423e20381ccfcdf0",                 format: "json",                 lang: "en",                 limit: 1             },             async: false,             success: function (data) {                 output = data.results.trackmatches.track.image[0]["#text"];             }          });         return output;     }); }); 

and html

<div id="playlist" class="scrollable" style="height: 300px;overflow-y: auto">     <li>         <img src="/img/playlist/33a - sulis vardo.jpg"> <span class="titletrack">33a - sulis vardo</span>     </li>     <li>         <img class="plimg" src="/img/playlist/33a - shota.jpg">         <span onclick="playintoplaylist($(this).html());" class="titletrack">33a - shota</span>     </li> </div> 

i've made couple of changes. firstly it's finding last image because last image in html has plimg class, i've added that:

<div id="playlist" class="scrollable" style="height: 300px;overflow-y: auto">     <li>         <img class="plimg"/>         <span class="titletrack">33a - sulis vardo</span>     </li>     <li>         <img class="plimg"/>         <span onclick="playintoplaylist($(this).html());" class="titletrack">33a - shota</span>     </li> </div> 

secondly i've changed javascript iterate on images , load image sources asynchronously. if check response ajax call details passed second image not return image data, that's why 1 isn't loaded.

$(function(){     $("img.plimg").each(function() {         var img = $(this);         var title = img.next("span.titletrack").text();         var titledetails = title.split(' - ');         var track = titledetails[0];         var artist = titledetails[1];          $.ajax({             url: "http://ws.audioscrobbler.com/2.0/?method=track.search",             data: {                 track: track,                 artist: artist,                 api_key: "ca86a16ce762065a423e20381ccfcdf0",                 format: "json",                 lang: "en",                 limit: 1             },             async: true,             success: function (data) {                 var trackdata = data.results.trackmatches.track;                 if(!trackdata){                     alert("no track data " + artist + " / " + track);                     return;                 }                 var output = trackdata.image[0]["#text"];                 img.attr("src", output);             }         });                 }); }); 

i've put these updates on jsfiddle here.


Comments

Popular posts from this blog

c++ - Linked List error when inserting for the last time -

java - activate/deactivate sonar maven plugin by profile? -

java - What is the difference between String. and String.this. ? -