jQuery与ajax的应用(一)
<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": "智多星"
}
]
}
更多资源:
http://www.cnblogs.com/kissdodog/archive/2012/12/09/2810545.html
jQuery与ajax的应用(一)的更多相关文章
- jQuery之ajax实现篇
jQuery的ajax方法非常好用,这么好的东西,你想拥有一个属于自己的ajax么?接下来,我们来自己做一个简单的ajax吧. 实现功能 由于jq中的ajax方法是用了内置的deferred模块,是P ...
- 【原创经验分享】JQuery(Ajax)调用WCF服务
最近在学习这个WCF,由于刚开始学 不久,发现网上的一些WCF教程都比较简单,感觉功能跟WebService没什么特别大的区别,但是看网上的介绍,就说WCF比WebService牛逼多少多少,反正我刚 ...
- jQuery版AJAX简易封装
开发过程中,AJAX的应用应该说非常频繁,当然,jQuery的AJAX函数已经非常好用,但是小编还是稍微整理下,方便不同需求下,可以简化输入参数,下面是实例代码: $(function(){ /** ...
- JS原生ajax与Jquery插件ajax深入学习
序言: 近来随着项目的上线实施,稍微有点空闲,闲暇之时偶然发现之前写的关于javascript原生xmlHttpRequest ajax方法以及后来jquery插件ajax方法,于是就行了一些总结,因 ...
- 重写jquery的ajax方法
//首先备份下jquery的ajax方法 var _ajax=$.ajax; //重写jquery的ajax方法 $.ajax=function(opt){ //备份opt中error和success ...
- Jquery通过Ajax方式来提交Form表单
今天刚好看到Jquery的ajax提交数据到服务器的方法,原文是: 保存数据到服务器,成功时显示信息. jQuery 代码: $.ajax({ type: "POST", url: ...
- 对jquery的ajax进行二次封装以及ajax缓存代理组件:AjaxCache
虽然jquery的较新的api已经很好用了, 但是在实际工作还是有做二次封装的必要,好处有:1,二次封装后的API更加简洁,更符合个人的使用习惯:2,可以对ajax操作做一些统一处理,比如追加随机数或 ...
- jquery管理ajax异步-deferred对象
今天跟大家分享一个jquery中的对象-deferred.其实早在jquery1.5.0版本中就已经引入这个对象了.不过可能在实际开发过程中用到的并不多,所以没有太在意. 这里先不说deferred的 ...
- Struts2 使用jQuery实现Ajax
在jQuery中将Ajax相关的操作进行封装,使用时只需在合适的地方调用Ajax相关的方法即可,相比而言,使用jQuery实现Ajax更加简洁,方便 1.$.Ajax()可以通过发送Http请求加载远 ...
- JQuery中Ajax的操作
JQuery Ajax异步操作的方式: $.ajax,$.post, $.get, $.getJSON. 一, $.ajax,这个是JQuery对ajax封装的最基础步,通过使用这个函数可以完成异 ...
随机推荐
- 自制wifi信号放大器
自制wifi信号放大器 只要家里安装了一台无线路由器,在家里的任何地方都可以使用带上网功能的电子产品上网,但是由于距离的问题,WiFi信号有强弱之分,离无线路由器稍微远点,信号就有所降低,上网速度受影 ...
- 【APIO 练习题】Lock Puzzle
题意 你有一个长度为 $n$ 的字符串,你需要经过若干次操作将其变成目标串 $n'$. 一次操作:选择串 $n$ 的一个后缀,将其翻转,并放到串 $n$ 的最前面. 请你输出任意一种方案.当然,你达到 ...
- 2 - Django基础
一.Django流程 Django是使用python编写的web框架,遵守MTV设计思想. 实现原理: 1,浏览器发起请求. 2,Django根据URL Conf指向view(Views) 3,vie ...
- Jerasure 1.2A 中的 C 函数 tips
C stat函数的用法举例 C语言 fread()与fwrite()函数说明与示例 / C 库函数 - fwrite() C 库函数 - sprintf()
- 封装一个类似jquery的ajax方法
//封装一个类似jquery的ajax方法,当传入参数,就可以发送ajax请求 //参数格式如下{ // type:"get"/"post", // dataT ...
- 【09】Vue 之 Vuex 数据通信
9.1. 引言 Vue组件化做的确实非常彻底,它独有的vue单文件组件也是做的非常有特色.组件化的同时带来的是:组件之间的数据共享和通信的难题. 尤其Vue组件设计的就是,父组件通过子组件的prop进 ...
- How Many to Be Happy?
How Many to Be Happy? 时间限制: 1 Sec 内存限制: 128 MB 题目描述 Let G be a connected simple undirected graph wh ...
- [bzoj 1782] [Usaco2010 Feb]slowdown慢慢游
[bzoj 1782] [Usaco2010 Feb]slowdown慢慢游 Description 每天Farmer John的N头奶牛(1 <= N <= 100000,编号1-N)从 ...
- 背景.jpg
- JS与验证控件结合验证
原文发布时间为:2010-05-14 -- 来源于本人的百度文章 [由搬家工具导入] 把BUTTOn中 的return CheckFive()去 掉 .. 放 到 <Form id=" ...