1-2 使用getJSON()方法异步加载JSON格式数据
本节编程练习不计算学习进度,请电脑登录imooc.com操作

使用getJSON()方法异步加载JSON格式数据

使用getJSON()方法可以通过Ajax异步请求的方式,获取服务器中的数据,并对获取的数据进行解析,显示在页面中,它的调用格式为:

jQuery.getJSON(url,[data],[callback])$.getJSON(url,[data],[callback])

其中,url参数为请求加载json格式文件的服务器地址,可选项data参数为请求时发送的数据,callback参数为数据请求成功后,执行的回调函数。

例如,点击页面中的“加载”按钮,调用getJSON()方法获取服务器中JSON格式文件中的数据,并遍历数据,将指定的字段名内容显示在页面中。如下图所示:

在浏览器中显示的效果:

从图中可以看出,当点击“加载”按钮时,通过getJSON()方法调用服务器中的sport.json文件,获取返回的data文件数据,并遍历该数据对象,以data[“name”]取出数据中指定的内容,显示在页面中。

任务

我来试试,亲自调用getJSON()方法获取服务器中JSON格式文件的内容。

在下列代码的第24行,调用getJSON()方法获取服务器中 http://www.imooc.com/data/sport.json 的JSON格式文件中的数据,并将数据中指定的内容显示页面中。

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <title>使用getJSON()方法异步加载JSON格式数据</title>
  5. <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js" type="text/javascript"></script>
  6. <link href="style.css" rel="stylesheet" type="text/css" />
  7. </head>
  8.  
  9. <body>
  10. <div id="divtest">
  11. <div class="title">
  12. <span class="fl">我最喜欢的一项运动</span>
  13. <span class="fr">
  14. <input id="btnShow" type="button" value="加载" />
  15. </span>
  16. </div>
  17. <ul></ul>
  18. </div>
  19.  
  20. <script type="text/javascript">
  21. $(function () {
  22. $("#btnShow").bind("click", function () {
  23. var $this = $(this);
  24. ?{
  25. $this.attr("disabled", "true");
  26. $.each(data, function (index, sport) {
  27. if(index==3)
  28. $("ul").append("<li>" + sport["name"] + "</li>");
  29. });
  30.  
  31. });
  32. })
  33. });
  34. </script>
  35. </body>
  36. </html>
  1. #divtest
  2. {
  3. width: 282px;
  4. }
  5. #divtest .title
  6. {
  7. padding: 8px;
  8. background-color:Blue;
  9. color:#fff;
  10. height: 23px;
  11. line-height: 23px;
  12. font-size: 15px;
  13. font-weight: bold;
  14. }
  15. ul
  16. {
  17. float: left;
  18. width: 280px;
  19. padding: 5px 0px;
  20. margin: 0px;
  21. font-size: 14px;
  22. list-style-type: none;
  23. }
  24. ul li
  25. {
  26. float: left;
  27. width: 280px;
  28. height: 23px;
  29. line-height: 23px;
  30. padding: 3px 8px;
  31. }
  32. .fl
  33. {
  34. float: left;
  35. }
  36. .fr
  37. {
  38. float: right;
  39. }
下一节