我最近更改了网站设计,现在需要对数据使用动态AJAX请求。基本上,我正在尝试使用JSON格式的Last.FM API检索用户数据。
我对此很陌生,尤其是JSON,这让我有些头疼!我知道我一定缺少简单的东西。
这是一些非常基本的代码,用于测试功能,但未检索任何内容!
<html> <head> <script src="./jquery/jquery-1.4.4.js"></script> </head> <body> <script type="text/javascript"> $(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) { $.each(data.topartists.artist, function(i,item){ html += "<p>" + item.name + " - " + item.playcount + "</p>"; }); $('#test').append(html); }); }); </script> <div id="test"></div> </body></html>
有什么建议?
我希望能够在整个页面中使用JSON对象,例如,在任何时候我都可以调用topartists.artist [i] .playcount;。显示播放次数等。如何执行此操作?
html变量必须在范围之外声明each:
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()(如注释中所示),并且可以在任何地方访问它。
$(document).ready()