jQuery与ajax的应用(一)
2017-03-10 09:50
302 查看
<body> <div id="resText"></div> <div id="reshtml"></div> <script src="js/jquery/jquery-1.8.3.min.js"></script> <script type="text/javascript"> $(function(){ $.ajax({ type: "get", url: "test2.json", data:{flag:"wap-mobile",mid:"m123456"}, //可选参数 dataType: "json", success: function(data){ console.log(data); console.log(data.result.banners); //遍历banner数组,取到每个值; for (var i=0;i<data.result.banners.length;i++) { console.log(data.result.banners[i]); //只能用在少量需要DOM插入时使用;大量DOM数据时不可取。 var img=$("<img src="+data.result.banners[i].banners_pic+" />") var div = $("#resText"); div.append(img); } for (var j=0;j<data.result.goods_list.length;j++) { console.log(data.result.goods_list[j].product_name); //只能用在少量需要DOM插入时使用;大量DOM数据时不可取。 var html = '<div class="goods_list">'+ ' <dl>'+ ' <dt><img src='+data.result.goods_list[j].product_img_url+'/></dt>'+ ' <dd>'+data.result.goods_list[j].product_name+'</dd>'+ ' </dl>'+ '</div>'; var div = $("#reshtml"); div.append(html); } } }); }); </script> </body>
注:
1、关于type参数:type: "get",
要求为String类型的参数,请求方式(post或get)默认为get。注意其他http请求方法,例如put和delete也可以使用,但仅部分浏览器支持。
2、关于URL参数:url: "test2.json",
要求为String类型的参数,(默认为当前页地址)发送请求的地址。
3、关于data参数:data:{flag:"wap-mobile",mid:"m123456"},
要求为Object或String类型的参数,发送到服务器的数据。如果已经不是字符串,将自动转换为字符串格式。get请求中将附加在url后。防止这种自动转换,可以查看 processData选项。对象必须为key/value格式,例如{foo1:"bar1",foo2:"bar2"}转换为&foo1=bar1&foo2=bar2。如果是数组,JQuery将自动为不同值对应同一个名称。例如{foo:["bar1","bar2"]}转换为&foo=bar1&foo=bar2。
4、关于dataType参数:dataType: "json",
要求为String类型的参数,预期服务器返回的数据类型。如果不指定,JQuery将自动根据http包mime信息返回responseXML或responseText,并作为回调函数参数传递。可用的类型如下:
xml:返回XML文档,可用JQuery处理。
html:返回纯文本HTML信息;包含的script标签会在插入DOM时执行。
script:返回纯文本JavaScript代码。不会自动缓存结果。除非设置了cache参数。注意在远程请求时(不在同一个域下),所有post请求都将转为get请求。
json:返回JSON数据。
jsonp:JSONP格式。使用SONP形式调用函数时,例如myurl?callback=?,JQuery将自动替换后一个“?”为正确的函数名,以执行回调函数。
text:返回纯文本字符串。
5、关于success参数:success: function(data){}
要求为Function类型的参数,请求成功后调用的回调函数,有两个参数。
(1)由服务器返回,并根据dataType参数进行处理后的数据。
(2)描述状态的字符串。
function(data, textStatus){
//data可能是xmlDoc、jsonObj、html、text等等
this; //调用本次ajax请求时传递的options参数
}
6、关于error参数:
要求为Function类型的参数,请求失败时被调用的函数。该函数有3个参数,即XMLHttpRequest对象、错误信息、捕获的错误对象(可选)。ajax事件函数如下:
function(XMLHttpRequest, textStatus, errorThrown){
//通常情况下textStatus和errorThrown只有其中一个包含信息
this; //调用本次ajax请求时传递的options参数
}
7、其他更多参数省略!
8、代码格式转换网址:http://www.css88.com/tool/html2js/
var html = '<div class="goods_list">'+
' <dl>'+ ' <dt><img src='+data.result.goods_list[j].product_img_url+'/></dt>'+ ' <dd>'+data.result.goods_list[j].product_name+'</dd>'+ ' </dl>'+ '</div>';
9、url: "test2.json", //json格式的数据(是后台处理之后给出api接口文档)
{ "result": { "banners": [ { "banners_pic": "img/1.jpg" } ], "goods_brand": [ { "brand_id": "6394", "brand_name": "雪花秀/SULWHASOO", "brand_mainpage_pic": "img/6394.png" }, { "brand_id": "6435", "brand_name": "爱丽小屋/ETUDE HOUSE", "brand_mainpage_pic": "img/6435.png" }, { "brand_id": "6676", "brand_name": "A.H.C", "brand_mainpage_pic": "img/6676.png" } ], "goods_list": [ { "product_id": "10000049487", "product_name": "伊思蜗牛霜 60ML", "product_img_url": "img/01_m.jpg", "real_price_dollar": "47.00", "real_price_rmb": "321.95", "brand_name": "伊思/It`S SKIN", "vip_product_price": "173.49", "is_import": "0", "item_price": "¥191.00", "fenhong_vip_price": "184.30", "item_label": "售价" }, { "product_id": "10002013756", "product_name": "MANDARINA DUCK 背包 AIRBAG 49T01001", "product_img_url": "img/1_m.jpg", "real_price_dollar": "199.00", "real_price_rmb": "1365.14", "brand_name": "意大利鸳鸯/MANDARINA DUCK", "vip_product_price": "1228.63", "is_import": "1", "item_price": "¥1228.63", "fenhong_vip_price": "1228.63", "item_label": "折扣价", "import_label": "折扣价", "import_price": "1228.63" } ] } }
=========================================================================
$.each()方法实现:
顺便说一下$.each()函数:
$.each()函数不同于JQuery对象的each()方法,它是一个全局函数,不操作JQuery对象,而是以一个数组或者对象作为第1个参数,以一个回调函数作为第2个参数。回调函数拥有两个参数:第1个为对象的成员或数组的索引,第2个为对应变量或内容。
<body> <div id="resText"> <input type="text" name="username" id="username" value="中国" /> <input type="text" name="content" id="content" value="客服回答授课计划合肥" /> </div> <script src="js/jquery/jquery-1.8.3.min.js"></script> <script type="text/javascript"> $(function(){ $.ajax({ type: "GET", url: "test.json", data: {username:"name", content:"content"}, dataType: "json", success: function(data){ console.log(data); console.log(data.name); console.log(data.content); $('#resText').empty(); //清空resText里面的所有内容 var html = ''; $.each(data, function(commentIndex, comment){ //html = '<div><h6>'+data.name+'</h6><p>'+data.content+'</p></div>'; html = '<div>'+ ' <h6>'+data.name+'</h6>'+ ' <p>'+data.content+'</p>'+ '</div>'; }); $('#resText').html(html); } }); }); </script> </body>
test.json
{ "name":"中国", "content":"客服回答授课计划合肥", "province":[ { "name":"黑龙江", "cities":{ "city":["哈尔滨","大庆"] } }, { "name":"广东", "cities":{ "city":["广州","深圳","珠海"] } }, { "name":"台湾", "cities":{ "city":["台北","高雄"] } }, { "name":"新疆", "cities":{ "city":["乌鲁木齐"] } } ], "error": "0", "hasmore": "false", "msg": "提示信息", "total":"合计总数" }
=================================================================================
<body> <div class="ajaxResult">我们的练习题</div> <script src="js/jquery/jquery-1.8.3.min.js"></script> <script type="text/javascript"> var num=10, //定义的全局变量(参数) area="青岛市市南区", curpage=1; $.ajax({ type: "get", //以POST或GET的方式请求。默认GET。PUT和DELETE也可以用,但并不是所有的浏览器都支持 url: "test3.json", //请求的目的地址,须是一个字符串。 data: { //发送到服务器的数据的键/值对象====后台需要传过去处理的参数。get方法则附在html请求地址后面。http://192.168.1.82:8020/juzhong/test3.json?flag=wap&type=like&num=10&area=%E9%9D%92%E5%B2%9B%E5%B8%82%E5%B8%82%E5%8D%97%E5%8C%BA&curpage=1 flag: "wap", type: 'like', num: num, area :area, curpage: curpage }, dataType:"json", //想从服务器得到哪种类型的数据。xml,html,script,json,jsonp,text beforeSend: function(XMLHttpRequest){ //传递异步请求之前的事件。 alert("传递异步请求之前的事件"); }, success: function(data, textStatus){ //请求成功后的处理函数 $(".ajaxResult").html(""); console.log(data); $.each(data, function(){ //document.write(data.d[0].CustomerName); //宋江 $(".ajaxResult").append("<li>"+data.d[0].CustomerName+"</li>"); }); }, complete: function(XMLHttpRequest, textStatus){ //不管请求成功还是错误,只要请求完成,可以执行的事件。 alert("不管请求成功还是错误,只要请求完成,可以执行的事件。"); }, error: function(){ alert("请求出错处理"); //请求出错处理 } }); </script> </body>
test3.json
{ "d":[ { "Unid":1, "CustomerName": "宋江", "Memo": "天魁星", "Other": "黑三郎" }, { "Unid":2, "CustomerName": "吴用", "Memo": "天机星", "Other": "智多星" } ] }
更多资源:
https://www.geek-share.com/detail/2566063882.html
相关文章推荐
- JQuery与ajax的应用实例
- 4,jquery的ajax应用-jsp
- .net jquery ajax应用(前端)
- jquery $.ajax入门应用二
- PHP+jQuery实现Ajax分页效果:jPaginate插件的应用
- 《jquery权威指南》读书笔记之第六章--Ajax在jquery中的应用
- 【Ajax技术】JQuery的应用与高级调试技巧
- Jquery中AJAX的应用
- Infinite Ajax Scroll一个jQuery插件应用介绍
- 锋利的jQuery 第六章 jQuery于Ajax的应用
- 使用Asp.net MVC, Jquery, Jquery UI构建基于Ajax的RIA应用.
- Jquery中$.ajax()方法应用笔记
- jQuery中的ajax应用
- 简单的ajax、json、jquery应用
- Ajax(Asynchronous JavaScript and XML)在JQuery中的应用
- 一个例子探究jQuery的Ajax应用(一)
- 用JQuery实现Ajax的简单小应用
- 《锋利的jQuery》要点归纳(五)jQuery与ajax的应用(上)
- PHP+jQuery实现Ajax分页效果:jPaginate插件的应用
- 第六讲 jQuery_Ajax的应用