html变量必须在范围之外声明
each:
//var topArt; $(document).ready(function() { $.getJSON("http://ws.audioscrobbler.com/2.0/?method=user.getTopArtists&user=test&api_key=690e1ed3bc00bc91804cd8f7fe5ed6d4&limit=5&format=json&callback=?", function(data) { var html = ''; $.each(data.topartists.artist, function(i, item) { html += "<p>" + item.name + " - " + item.playcount + "</p>"; }); $('#test').append(html); // topArt = data.topartists; });});至于第二个问题,则需要一个全局变量。您可以将其放在前面
$(document).ready()(如注释中所示),并且可以在任何地方访问它。



