最开始调试的时候老是不成功,也找不到问题在哪儿。后来请教了别人,才知道原来是跨域问题,应该本地搭建一个Web Server才行,后来自己在XAMPP上在调试成功了。
首先存一个data.json文件
[ { "id":"001", "title":"百度", "url":"http://www.baidu.com" }, { "id":"002", "title":"阿里", "url":"www.alibaba.com" }, { "id":"003", "title":"腾讯", "url":"www.qq.com" } ]
然后再在相同的目录下面新建一个test.html文件
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>ajax请求json数据</title> </head> <body> <div id="test"></div> <script src="https://code.jquery.com/jquery-3.0.0.min.js"></script> <script> $(function(){ $.ajax({ //请求方式 type:"GET", //文件位置 url:"data.json", //返回数据格式为json,也可以是其他格式如 dataType: "json", //请求成功后要执行的函数,拼接html success: function(data){ var str="<ul>"; $.each(data,function(i,n){ str+="<li>"+"ID:"+n.id+"</li>"; str+="<li>"+"标题:"+n.title+"</li>"; str+="<li>"+"地址:"+n.url+"</li>"; }); str+="</ul>"; $("div").append(str); } }); }); </script> </body> </html>
执行结果如下:
附另一个代码如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>ajax请求json数据</title> </head> <body> <div id="goods_img"></div> <script src="https://code.jquery.com/jquery-3.0.0.min.js"></script> <script type="text/javascript"> $(function() { $.ajax({ url: "http://cd.jd.com/description/channel?skuId=10209516632&mainSkuId=10043622860&cdn=2", //用户处理页 dataType: "jsonp", type: "POST", scriptCharset: 'GBK', //传送请求数据 success: function(data){ //这里的data是后台返回的值 info = data.content.replace(/data-lazyload=/g, "src="); ///xxxx/两个斜杠表示这个是正则表达式。后面的g表示匹配全部(即替换全部) console.log( data.content ); //仅在控制台中打印相关信息 $("#goods_img").html(info); } }) }); </script> </body> </html>
小知识:
$(function(){...});就是
$(document).ready(function(){ // 开始写 jQuery 代码... });
的缩写,这是为了防止文档在完全加载(就绪)之前运行 jQuery 代码。另外,附一个jquery语法吧,真是超级简单啊。
其中 console.log的信息可以改成任意的其他信息,比如:
二、最终代码:
<!DOCTYPE html> <html> <head> <title></title> </head> <body> <script type="text/javascript"> var province=["湖南","吉林","辽宁"] var menu_data=[ {"id":"CN101250101","cityEn":"changsha","cityZh":"长沙","countryCode":"CN","countryEn":"China","countryZh":"中国","provinceEn":"hunan","provinceZh":"湖南","leaderEn":"changsha","leaderZh":"长沙","lat":"28.19409","lon":"112.982279"}, {"id":"CN101250102","cityEn":"ningxiang","cityZh":"宁乡","countryCode":"CN","countryEn":"China","countryZh":"中国","provinceEn":"hunan","provinceZh":"湖南","leaderEn":"changsha","leaderZh":"长沙","lat":"28.253928","lon":"112.553182"}, ]; for (var m = 0; m < province.length; m++) { //筛选level=1的对象 var menu_node1 = menu_data.filter(function (e) { return e.provinceZh == province[m]; }); document.write(province[m]) document.write(" "); //遍历结果对象 for (var i = 0; i < menu_node1.length; i++) { // document.write(menu_node1[i].cityZh); document.write("<a href=/"+menu_node1[i].id+">"+menu_node1[i].cityZh+"</a>"); document.write(" "); } } </script> </body> </html>
三、全国城市导航菜单
成果展示:
html代码:
<!DOCTYPE HTML> <html xmlns="http://www.w3.org/1999/xhtml"><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link rel="stylesheet" type="text/css" href="http://img.xuexiaodaquan.com/skin.css" media="all"> </head> <body> <!--Top--> <div class="top"> <div class="top-content"> <script type="text/javascript">top_bg();</script> </div> </div> <!--Top end--> <!--Header--> <div class="header"> <div class="header-content"> <div class="logo clearfix"> <a class="logo-name" href="/" target="_self" title="到上海学校大全首页">上海教育信息网</a> <div class="logo-city"> <p><i></i>上海</p> <a href="http://www.xuexiaodaquan.com" id="moreCity">全国学校查询</a> <div id="moreCityList"></div></div> </div> <script type="text/javascript">top_search();</script> </div> </div> <!--Header end--> <body> </body> </html> <script src="http://libs.baidu.com/jquery/1.11.1/jquery.min.js"></script> <script src="js/pages.js" charset="utf-8" type="text/javascript"></script>
Js文件:
citylist