??xml version="1.0" encoding="utf-8" standalone="yes"?>
$(document).ready(function(){
$(document).bind("contextmenu",function(e){
return false;
});
});
2.browser
// Safari
if( $.browser.safari )
{
//do something
}
//mozilla
if($.browser.mozilla )
{
//do something
}
//Above IE6
if ($.browser.msie && $.browser.version >6 )
{
//do something
}
// IE6 and below
if ($.browser.msie && $.browser.version <= 6 )
{
//do something
}
3.查存在的元素
if ($("#someDiv").length) {
//yes it does ,do something
}
Q友情提C:本博文章Ƣ迎转蝲Q但h明出处:hankchenQ?/strong>http://www.aygfsteel.com/hankchenQ?/strong>
Q?Q?span style="font: 7pt 'Times New Roman'">
jQuery.get(url, [data], [callback], [type])Q?Q?span style="font: 7pt 'Times New Roman'">
jQuery.getJSON(url, [data], [callback])Q?Q?span style="font: 7pt 'Times New Roman'"> jQuery.getScript(url, [callback])
Q?Q?span style="font: 7pt 'Times New Roman'"> jQuery.post(url, [data], [callback], [type])
׃jQuery.ajax()功能比较强大Q可配置的参数比较多Q现在主要对q个Ҏ的注意事进行ȝ?/span>
1. jQuery.ajax()默认是以异步的方式请求的Q如果需要同步,使用参数async为false。因为有些应用必d步请求数据的。例如,某些Flash?/span>JS交互应用中,h一?/span>JS函数需要马上得到返回数据。此Ӟ必须采用同步?/span>Ajax调用方式?/span>
2. Ajax如果?/span>GethQ返回的数据一般会被浏览器~存Q如果不惌~存Q可以设|?/span>cache参数?/span>falseQ或者发送请求是带上旉戻Iq样览器会认ؓ是新的请求,而重C服务器加载数据。当Ӟ如果?/span>POST发送的h则不会被~存?/span>
3. dataTypeQ?/span>预期服务器返回的数据cd。如果不指定Q?/span>jQuery 自动根?/span> HTTP ?/span> MIME 信息q回 responseXML ?/span> responseTextQƈ作ؓ回调函数参数传递,可用?/span>:
Q?/span>1Q?/span>"xml": q回 XML 文档Q可?/span> jQuery 处理?/span>
Q?/span>2Q?/span>"html": q回U文?/span> HTML 信息Q包含的script标签会在插入dom时执行?/span>
Q?/span>3Q?/span>"script": q回U文?/span> JavaScript 代码。不会自动缓存结果。除非设|了"cache"参数?/span>'''注意Q?/span>'''在远E请求时(不在同一个域?/span>)Q所?/span>POSTh都将转ؓGETh?/span>(因ؓ?/span>DOM?/span>script标签来加?/span>)
Q?/span>4Q?/span>"json": q回 JSON 数据 ?/span>
Q?/span>5Q?/span>"jsonp": JSONP 格式。?/span> JSONP 形式调用函数Ӟ?/span> "myurl?callback=?" jQuery 自动替?/span> ? 为正的函数名,以执行回调函数?/span>
Q?/span>6Q?/span>"text": q回U文本字W串
其中Q?/span>"script"?/span>"json"讄可以解决Ajax的跨域问题?/span>
4. 如果服务器返回的一个字W串或数|则用普通的ajax调用卛_?/span>
如果服务器返回的是一?/span>JSON对象Q那么最好采?/span>jQuery.getJSON的方式,或者设|?/span>dataType=json。因为浏览器解析JSON对象需要时_直接q回JSON对象Q节省解析时_可以避免在服务器明明有返回数据,但是览器得不到的错误?/span>
5. Ajax调用是需要时间的Q所以一般将Ajax调用后的处理代码全部攑֜回调Ҏ中。不能采用这L处理方式Q?/span>
function getMyPrizeList(){
if(isNotEmpty(uid)){
var obj=new Object();
try{
jQuery.ajax({type:"GET",url:"someurl",async:false,cache:false,dataType:"script",scriptCharset:"gbk",success:function(json){
obj=json;
}
});
}catch(e){}
obj=eval("("+obj+")");
//alert(obj);
var str="";
for(var i in obj)
{
str+='<tr>'+'<th>'+prizearray[obj[i].prizeno]+'</th>'
str+='<td>'+'CD-KEYQ?/span>'+obj[i].cdkey+'</td>'
str+='<td>'+'期限Q?/span>'+obj[i].expiratedate+'?/span>'+'</td></tr>';
}
jQuery("#prizelist").append(str);
}
}
而必这样处理:卛_处理代码攑ֈsuccess函数里面Q?/span>
function getMyPrizeList(){
if(isNotEmpty(uid)){
var obj=new Array();
try{
jQuery.ajax({type:"GET",url:"someurl",
cache:false,
dataType:"script",
scriptCharset:"gbk",
success:function(json){
try{
obj=result;
}catch(e){}
jQuery("#prizelist").html("");
var str="";
for(var i=0;i<obj.length;i++ ){
str+='<tr><th>'+prizearray[obj[i].prizeno]+'</th>';
str+='<td>CD-KEYQ?/span>'+obj[i].cdkey+'</td>';
str+='<td>期限Q?/span>'+obj[i].expiratedate+'?/span></td></tr>';
}
jQuery("#prizelist").append(str);
}
});
}catch(e){}
}
}
6. jQuery.getJSON实例Q?/span>
//内部函数Q实现债务l信息的载入、设|?/span>
function innerShowDetail() {
// 获得JSON格式的数?/span>
$.getJSON('load.do',{id : userId}, function(json) {
// Ҏkey讄value
for (key in json) {
if(key == 'id'){
$('#detailDiv #' + key).val(json[key]);
} else {
if(json[key] == ''){
// 没有D|ؓI?/span>
$('#detailDiv #' + key).html(' ');
} else if(key == 'sex'){
$('#detailDiv #' + key).html(json[key] == '0' ? '?/span>' : '?/span>');
} else if(key == 'group'){
if(json[key] != null) {
$('#detailDiv #' + key).html(json[key]['groupName']);
}
} else {
$('#detailDiv #' + key).html(json[key]);
}
}
}
//讄对话框标题和内容
$('#detailDiv').removeAttr('class');
dialog.setTitle('查看人员[' + json['userName'] + ']详细资料');
dialog.setContent($('#detailDiv').html());
});
}
JSON(JavaScript Object Notation) 是一U轻量的数据交换格式,采用完全独立于语a的文本格式,是理想的数据交换格式。同ӞJSON?/span> JavaScript 原生格式Q这意味着?/span> JavaScript 中处?/span> JSON数据不需要Q何特D的 API 或工具包?br /> 本文主要是对JS操作JSON的方法做下ȝ?/span>
在JSON中,有两U结构:对象和数l?br />
1. 一个对象以“{”Q左括号Q开始,“}”Q右括号Q结束。每?#8220;名称”后跟一?#8220;:”Q冒PQ?#8220;‘名称/?#8217; ?#8221;之间使用“,”Q逗号Q分隔?nbsp;名称用引hhQ值如果是字符串则必须用括P数值型则不需要。例如:
var o={"xlid":"cxh","xldigitid":123456,"topscore":2000,"topplaytime":"2009-08-20"}Q?nbsp;
2. 数组是|valueQ的有序集合。一个数l以“[”Q左中括P开始,“]”Q右中括Pl束。g间?#8220;,”Q逗号Q分隔?br />
例如Q?br />
var jsonranklist=[{"xlid":"cxh","xldigitid":123456,"topscore":2000,"topplaytime":"2009-08-20"},{"xlid":"zd","xldigitid":123456,"topscore":1500,"topplaytime":"2009-11-20"}];
Z方便地处理JSON数据Q?/span>JSON提供?/span>json.js包,下蝲地址Q?/span>http://www.json.org/json.js
在数据传输过E中Q?/span>json是以文本Q即字符串的形式传递的Q?/span>JS操作的是JSON对象Q所以,JSON对象?/span>JSON字符串之间的怺转换是关键。例如:
JSON字符?
var str1 = '{ "name": "cxh", "sex": "man" }';
JSON对象:
var str2 = { "name": "cxh", "sex": "man" };
一?/span>JSON字符串{换ؓJSON对象
要用上面的str1Q必M用下面的Ҏ先{化ؓJSON对象Q?/span>
//?/span>JSON字符串{换ؓJSON对象
var obj = eval('(' + str + ')');
或?/span>
var obj = str.parseJSON(); //?/span>JSON字符串{换ؓJSON对象
或?/span>
var obj = JSON.parse(str); //?/span>JSON字符串{换ؓJSON对象
然后Q就可以q样dQ?/span>
Alert(obj.name);
Alert(obj.sex);
特别注意Q?/span>如果obj本来是一?/span>JSON对象Q那么?/span>evalQ)函数转换后(哪怕是多次转换Q还?/span>JSON对象Q但是?/span>parseJSONQ)函数处理后会有问题(抛出语法异常Q?br />
二、可以?/span>toJSONString()或者全局ҎJSON.stringify()?/span>JSON对象转化?/span>JSON字符丌Ӏ?/span>
例如Q?/span>
var last=obj.toJSONString(); //?/span>JSON对象转化?/span>JSON字符
或?/span>
var last=JSON.stringify(obj); //?/span>JSON对象转化?/span>JSON字符
alert(last);
注意Q?br />
上面的几个方法中Q除?/span>eval()函数?/span>js自带的之外,其他的几个方法都来自json.js包?/span>新版本的 JSON 修改?/span> APIQ将 JSON.stringify() ?/span> JSON.parse() 两个Ҏ都注入到?/span> Javascript 的内建对象里面,前者变成了 Object.toJSONString()Q而后者变成了 String.parseJSON()。如果提C找不到toJSONString()?/span>parseJSON()ҎQ则说明您的json包版本太低?br />
友情提醒Q本博文章欢q{载,但请注明出处Q?a href="http://www.aygfsteel.com/hankchen">陈新?/a>