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
Post a Comment