jQuery使用手册

本文全面介绍了jQuery的基本用法,包括选择器、DOM操作、事件处理、动态效果和Ajax支持等内容。适用于初学者快速入门。

一:核心部分
$(expr)
明:函数可以通css选择器,Xpathhtml来匹配目元素,所有的jQuery操作都以此
参数:expr:字符串,一个查询表达式或一段html字符串
例子:
jQuery前:

<p>one</p>
<div>
<p>two</p>
</div>
<
p>three</p>
<a href="#" id="test" onClick="jq()" >jQuery</a>


jQuery及功能:

function jq(){
alert($("div > p").html());
}

运行:当点idtest的元素对话框文字two,即div标签p元素的内容

function jq(){
$("<div><p>Hello</p></div>").appendTo("body");
}

运行:当点idtest的元素,向body中添加“<div><p>Hello</p></div>”
$(elem)
明:限制jQuery作用于一个特定的dom元素,个函数也接受xml文档和windows
参数: elem:通
jQuery压缩DOM元素
例子:
jQuery前:

<p>one</p>
<div>
<p>two</p>
</div><p>three</p>
<a href="#" id="test" onClick="jq()">jQuery</a>

jQuery及功能:

function jq(){
alert($(document).find("div > p").html());
}

运行:当点idtest的元素对话框文字two,即div标签p元素的内容

function jq(){
$(document.body).background("black");
}

运行:当点idtest的元素,背景色成黑色

$(elems)
明:限制jQuery作用于一特定的DOM元素
参数: elem:一jQuery压缩DOM元素
例子:
jQuery前:

<form id="form1">
<input type="text" name="textfield">
<input type="submit" name="Submit" value="提交">
</form>
<a href="#" id="test" onClick="jq()">jQuery</a>

jQuery及功能:

function jq(){
$(form1.elements ).hide();
}

运行:当点idtest的元素form1中的所有元素。
$(fn)
明:$(document).ready()的一个速方式,当文档全部时执行函数。可以有多个$(fn)当文档,同时执行所有函数!
参数:fn (Function):当文档时执行的函数!
例子:

$( function(){
$(document.body).background("black");
})

运行:当文档背景成黑色,相当于onLoad
$(obj)
明:复制一个jQuery象,
参数:obj (jQuery): 要复制的jQuery

例子:
jQuery前:

<p>one</p>
<div>
<p>two</p>
</div>
<p>three</p>
<a href="#" id="test" onClick="jq()">jQuery</a>

jQuery及功能:

function jq(){
var f = $("div");
alert($(f).find("p").html())
}

运行:当点idtest的元素对话框文字two,即div标签p元素的内容。
each(fn)
明:将函数作用于所有匹配的象上
参数:fn (Function): 需要
行的函数
例子:
jQuery前:

<img src="1.jpg"/>
<img src="1.jpg"/>
<a href="#" id="test" onClick="jq()">jQuery</a>

jQuery及功能:

function jq(){
$("img").each(
function(){
this.src = "2.jpg"; });
}

运行:当点idtest的元素img标签src成了2.jpg
eq(pos)
明:减少匹配象到一个独得dom元素
参数:pos (Number): 期望限制的索引,从0 开始
例子:
jQuery前:

<p>This is just a test.</p>
<p>So is this</p>
<a href="#" id="test" onClick="jq()">jQuery</a>

jQuery及功能:

function jq(){
alert($("p").eq(1).html())
}

运行:当点idtest的元素alert对话示:So is this,即第二个<p>标签的内容

get() get(num)
明:取匹配元素,get(num)返回匹配元素中的某一个元素
参数:get (Number): 期望限制的索引,从0 开始
例子:
jQuery前:

<p>This is just a test.</p>
<p>So is this</p>
<a href="#" id="test" onClick="jq()">jQuery</a>

jQuery及功能:

function jq(){
alert($("p").get(1).innerHTML);
}

运行:当点idtest的元素alert对话示:So is this,即第二个<p>标签的内容
注意geteq的区eq返回的是jQuery象,get返回的是所匹配的dom象,所有取$("p").eq(1)象的内容用jQuery方法html(),而取$("p").get(1)的内容用innerHTML

index(obj)
明:返回象索引
参数:obj (Object):
找的
例子:
jQuery前:

<div id="test1"></div>
<div id="test2"></div>
<a href="#" id="test" onClick="jq()">jQuery</a>

jQuery及功能:

function jq(){
alert($("div").index(document.getElementById('test1')));
alert($("div").index(document.getElementById('test2')));
}

运行:当点idtest的元素,两次alert对话框分别显01

size() Length
明:当前匹配象的数量,两者等价
例子:
jQuery前:

<img src="test1.jpg"/>
<img src="test2.jpg"/>
<a href="#" id="test" onClick="jq()">jQuery</a>

jQuery及功能:

function jq(){
alert($("img").length);
}

运行:当点idtest的元素alert对话2,表示找到两个匹配

二:DOM操作
属性
<img id="a" scr="5.jpg"/>例,在原始的javascript里面可以用var o=document.getElementById('a')取的ida象,在用o.src来取得或修改该节点的scr属性,在jQuery $("#a")将得到jQuery[ <img id="a" scr="5.jpg"/> ],然后可以用jQuery提供的很多方法来行操作,如$("#a").scr()将得到5.jpg,$("#a").scr("1.jpg")该对src属性改1,jpg。下面我jQuery提供的众多jQuery方法,方便大家快速DOM行操作
herf() herf(val)
明:jQuery象属性herf的操作。
例子:
jQuery

<a href="1.htm" id="test" onClick="jq()">jQuery</a>

jQuery及功能:

function jq(){
alert($("#test").href());
$("#test").href("2.html");
}

运行:先对话idtesturl,在将其url2.html,当对话框后会看到向到2.html
同理,jQuery
提供似的其他方法,大家可以分别试验一下:
herf() herf(val)

html() html(val)

id() id (val)

name() name (val)

rel() rel (val)

src() src (val)

title() title (val)

val() val(val)

操作
after(html) 在匹配元素后插入一段html

<a href="#" id="test" onClick="jq()">jQuery</a>

jQuery及功能:

function jq(){
$("#test").after("<b>Hello</b>");
}

行后相当于:

<a href="#" id="test" onClick="jq()">jQuery</a><b>Hello</b>


after(elem) after(elems) 将指定elemelems插入到在匹配元素后

<p id="test">after</p><a href="#" onClick="jq()">jQuery</a>

jQuery及功能

function jq(){
$("a").after($("#test"));
}

行后相当于

<a href="#" onClick="jq()">jQuery</a><p id="test">after</p>


append(html)在匹配元素内部,且末尾插入指定html

<a href="#" id="test" onClick="jq()">jQuery</a>

jQuery及功能:

function jq(){
$("#test").append("
<b>Hello</b>");
}

行后相当于

<a href="#" onClick="jq()">jQuery<b>Hello</b></a>

同理append(elem) append(elems) before(html) before(elem) before(elems)请执行参照appendafter的方来测试、理解!
appendTo(expr) append(elem)相反

<p id="test">after</p><a href="#" onClick="jq()">jQuery</a>

jQuery及功能

function jq(){
$("a"). appendTo ($("#test"));
}

行后相当于

<p id="test">after<a href="#" onClick="jq()">jQuery</a> </p>


clone() 复制一个jQuery

<p id="test">after</p><a href="#" onClick="jq()">jQuery</a>

jQuery及功能:

function jq(){
$("#test").clone().appendTo($("a"));
}

复制$("#test")然后插入到<a>,行后相当于

<p id="test">after</p><a href="#" onClick="jq()">jQuery</a><p id="test">after</p>


empty() 除匹配象的所有子

<div id="test">
<span>span</span>
<p>after</p>
</div>
<a href="#" onClick="jq()">jQuery</a>

jQuery及功能:

function jq(){
$("#test").empty();
}

行后相当于

<div id="test"></div><a href="#" onClick="jq()">jQuery</a>


insertAfter(expr) insertBefore(expr)
按照官方的解和我的几个简单测试insertAfter(expr)相当于before(elem),insertBefore(expr)相当于after (elem)
prepend (html) prepend (elem) prepend (elems) 在匹配元素的内部且开始出插入
下面例子区分append(elem) appendTo(expr) prepend (elem)

<p id="a">p</p>
<div>div</div>

$("#a").append($("div")) 后相当于

<p id="a">
<div>div</div>
</p>

$("#a").appendTo($("div")) 后 相当于

<div>
div
<p id="a">p</p>
</div>

$("#a").prepend ($("div")) 后 相当于

<p id="a">
<div>div</div>
</p>


remove() 除匹配
注意区分empty()empty()移出匹配象的子点,remove(),移出匹配
wrap(htm)
将匹配
象包含在出的html

<p>Test Paragraph.</p> <a href="#" onClick="jq()">jQuery</a>

jQuery及功能:

function jq(){
$("p").wrap("<div class='wrap'></div>");
}

行后相当于

<div class='wrap'><p>Test Paragraph.</p></div>


wrap(elem) 将匹配象包含在出的象内

<p>Test Paragraph.</p><div id="content"></div>
<a href="#" onClick="jq()">jQuery</a>

jQuery及功能:

function jq(){
$("p").wrap( document.getElementById('content') );
}

行后相当于

<div id="content"><p>Test Paragraph.</p></div>



add(expr) 在原象的基上在附加符合指定表达式的jquery

<p>Hello</p><p><span>Hello Again</span></p>
<
a href="#" onClick="jq()">jQuery</a>

jQuery及功能:

function jq(){
var f=$("p").add("span");
for(var i=0;i < $(f).size();i++){
alert($(f).eq(i).html());}
}

$("p")得到匹配<p>象,有两个,add("span")是在("p")的基上加上匹配<span >象,所有一共有3个,从上面的函数运行果可以看到$("p").add("span")3象的集合,分 [<p>Hello</p>][<p><span>Hello Again</span></p>][<span>Hello Again</span>]
add(el) 在匹配象的基上在附加指定的dom元素。
$("p").add(document.getElementById("a"));
add(els) 在匹配象的基上在附加指定的一组对象,els是一个数

<p>Hello</p><p><span>Hello Again</span></p>

jQuery及功能:

function jq(){
var f=$("p").add([document.getElementById("a"), document.getElementById("b")])
for(var i=0;i < $(f).size();i++){
alert($(f).eq(i).html());}
}

注意els是一个数里的[ ]不能漏掉。
ancestors () 一依次以匹配点的父点的内容为对,点除外(有点不好理解,看看下面例子就明白了)

<div>
<p>one</p>
<span>
<u>two</u>
</span>
</div>

jQuery及功能:

function jq(){
var f= $("u").ancestors();
for(var i=0;i < $(f).size();i++){
alert($(f).eq(i).html());}
}

第一个象是以<u>的父点的内容为对象,[ <u>two</u> ]
第一个
象是以<u>的父点的父点(div)的内容为对象,[<p>one</p><span><u>two</u></span> ]
一般一个文档
<body><html>,依次推下去。
ancestors (expr) ancestors()的基上之取符合表达式的
如上各例子var fvar f= $("u").ancestors(“div”),只返回一个象:
[ <p>one</p><span><u>two</u></span> ]
children() 返回匹配象的子介点

<p>one</p>
<div id="ch">
<span>two</span>
</div>

jQuery及功能:

function jq(){
alert($("#ch").children().html());
}

$("#ch").children()得到[ <span>two</span> ].所以.html()果是”two”
children(expr) 返回匹配象的子介点中符合表达式的

<div id="ch">
<span>two</span>
<span id="sp">three</span>
</div>

jQuery及功能

function jq(){
alert($("#ch").children(“#sp”).html());
}

$("#ch").children()得到[<span>two</span><span id="sp">three</span> ].
$("#ch").children(“#sp”)
过滤得到[<span id="sp">three</span> ]
parent () parent (expr)取匹配象父点的。参照children帮助理解
contains(str) 返回匹配象中包含字符串str

<p>This is just a test.</p><p>So is this</p>

jQuery及功能:

function jq(){
alert($("p").contains("test").html());
}

$("p")得到两个象,而包含字符串”test”只有一个。所有$("p").contains("test")返回 [ <p>This is just a test.</p> ]
end() 束操作,返回到匹配元素清上操作前的状.

filter(expr) filter(exprs) 过滤现实匹配符合表达式的 exprs,注意添加“[ ]”

<p>Hello</p><p>Hello Again</p><p class="selected">And Again</p>

jQuery及功能:

function jq(){
alert($("p").filter(".selected").html())
}

$("p")得到三个象,$("p").contains("test")只返回classselected象。
find(expr) 在匹配的象中继续查找符合表达式的

<p>Hello</p><p id="a">Hello Again</p><p class="selected">And Again</p>

Query及功能:

function jq(){
alert($("p").find("#a").html())
}

$("p")象中ida象。
is(expr) 判断象是否符合表达式,返回boolen

<p>Hello</p><p id="a">Hello Again</p><p class="selected">And Again</p>

Query及功能:

function jq(){
alert($("#a").is("p"));
}

$("#a ")是否符合jquery表达式。
大家可以用$("#a").is("div"); ("#a").is("#a")多来
测试一下
next() next(expr) 返回匹配象剩余的兄弟

<p>Hello</p><p id="a">Hello Again</p><p class="selected">And Again</p>

jQuery及功能

function jq(){
alert($("p").next().html());
alert($("p").next(".selected").html());
}

$("p").next()返回 [ <p id="a">Hello Again</p> , <p class="selected">And Again</p> ]两个
$("p").next(".selected)
只返回 [<p class="selected">And Again</p> ]一个

prev () prev (expr) 参照next理解

not(el) not(expr) jQuery象中移出匹配的象,eldom元素,exprjQuery表达式。

<p>one</p><p id="a">two</p>
<a href="#" onclick="js()">jQuery</a>

jQuery及功能:

function js(){
alert($("p").not(document.getElementById("a")).html());
alert($("p").not(“#a”).html());
}

$("p")由两个象,排除后的[<p>one</p> ]
siblings () siblings (expr) jquery匹配象中其它兄弟级别

<p>one</p>
<div>
<p id="a">two</p>
</div>
<a href="#" onclick="js()">jQuery</a>

jQuery及功能:

function js(){
alert($("div").siblings().eq(1).html());
}

$("div").siblings()返回两个[<p>one</p><a href="#" onclick="js()">jQuery</a> ]
alert($("div").siblings(“a”)
返回一个
[<a href="#" onclick="js()">jQuery</a> ]
其他
addClass(class) 匹配象添加一个class
removeClass (class) 将第一个匹配象的某个class式移出

attr (name) 取第一个匹配象的属性

<img src="test.jpg"/><a href="#" onclick="js()">jQuery</a>

jQuery及功能:

function js(){
alert($("img").attr("src"));
}

返回test.jpg
attr (prop) 第一个匹配象的置属性,prophash象,用于象批量添加众多属性

<img/><a href="#" onclick="js()">jQuery</a>

jQuery及功能:

function js(){
$("img").attr({ src: "test.jpg", alt: "Test Image" });
}

运行果相当于<img src="test.jpg" alt="Test Image"/>
attr (key,value) 第一个匹配象的置属性,key属性名,value属性

<img/><a href="#" onclick="js()">jQuery</a>

jQuery及功能

function js(){
$("img").attr(“src”,”test.jpg”);
}

运行果相当于<img src="test.jpg"/>
removeAttr (name) 将第一个匹配象的某个属性移出

<img alt="test"/><a href="#" onclick="js()">jQuery</a>

jQuery及功能:

function js(){
$("img"). removeAttr("alt");
}

运行果相当于<img />
toggleClass (class) 将当前象添加一个式,不是当前移出此式,返回的是理后的

<p>Hello</p><p class="selected">Hello Again</p><a href="#" onclick="js()">jQuery</a>

$("p")果是返回 [<p>Hello</p>,<p class="selected">Hello Again</p> ]
$("p").toggleClass("selected")
果是返回 [ <p class="selected">Hello</p>, <p>Hello Again</p> ]

CSS操作

传统javascriptcss的操作相当繁,比如<div id="a" style="background:blue">css</div>取它的background法是 document.getElementById("a").style.background,而jQuerycss更方便的操作,$("#a").background()$("#a").background(“red”)
$("#a")
得到jQuery
[ <div id="a" … /div> ]
$("#a").background()
将取出
该对象的background式。
$("#a").background(“red”)
该对象的background设为redjQuery提供了以下方法,来操作css
background () background (val) color() color(val) css(name) css(prop)
css(key, value) float() float(val) height() height(val) width() width(val)
left() left(val) overflow() overflow(val) position() position(val) top() top(val)

里需要解一下css(name) css(prop) css(key, value),其他的看名字都知道什么作用了!

<div id="a" style="background:blue; color:red">css</div><P id="b">test</P>


css(name) 式名name
$("#a").css("color")
将得到式中colorred("#a").css("background ")将得到blue
css(prop) prop是一个hash象,用于置大量的css
$("#b").css({ color: "red", background: "blue" });
效果是<p id="b" style="background:blue; color:red">test</p>,{ color: "red", background: "blue" }hash象,colorkey"red"value
css(key, value) 用于置一个独得css
$("#b").css("color","red");效果是<p id="b" style="color:red">test</p>

四:JavaScript

$.browser() 判断浏览型,返回boolen

$(function(){
if($.browser.msie) {
alert("
是一个IE浏览");}
else if($.browser.opera) {
alert("
是一个opera浏览");}
})

入式判断浏览型,可判断的型有msiemozillaoperasafari
$.each(obj, fn) obj为对象或数fnobj上依次行的函数,注意区分$().each()

$.each( [0,1,2], function(i){ alert( "Item #" + i + ": " + this ); });

012参数,入到function(i)

$.each({ name: "John", lang: "JS" }, function(i){ alert( "Name: " + i + ", Value: " + this );

{ name: "John", lang: "JS" }一个hash象,依次将hash中每组对入到函数中
$.extend(obj, prop) 用第二个展第一个

var settings = { validate: false, limit: 5, name: "foo" };
var options = { validate: true, name: "bar" };
$.extend(settings, options);

行后settings{ validate: true, limit: 5, name: "bar" }
可以用下面函数来测试

$(function(){
var settings = { validate: false, limit: 5, name: "foo" };
var options = { validate: true, name: "bar" };
$.extend(settings, options);
$.each(settings,
function(i){ alert( i + "=" + this ); });
})


$.grep(array,fn) 函数fn过滤array,将array中的元素依次传给fnfn返回一个boolen,如fn返回true,将被过滤

$(function(){
var arr= $.grep( [0,1,2,3,4], function(i){ return i > 2; });
$.each(arr,
function(i){ alert(i); });
})

可以看待$.grep后数[0,1,2,3,4][01]
$.merge(first, second) 两个参数都是数,排出第二个数中与第一个相同的,再将两个数合并

$(function(){
var arr = $.merge( [0,1,2], [2,3,4] )
$.each(arr,
function(i){ alert(i); });
})

可以看出arr[0,1,2,3,4]
$.trim(str) 移出字符串两端的空格
$.trim(" hello, how are you? ")
果是"hello, how are you?"

五:动态效果

在将部分之前我先看个例子,相信做网的朋友都遇到n的情景,但点某菜钮时,如果它的子菜示的,则隐藏子菜,如果子菜单隐藏,则显示出来,传统javascript做法是先用getElementById取出子菜所在容器的id,在判断容器的style.display是否等于none,如果等于则设为block,如果不等于这设为none,如果在将效果置复一点,当点钮时,不是忽然藏和示子菜,而是高度平滑的转变这时就要通setTimeout置子菜height了,再复一点透明度也平滑的消失和显现这时显现下来需要写很多代,如果js 不好的朋友可能只能从人写好的代来修改了!jQuery实现上面效果只需要1就行,$("#a").toggle("slow"),,学完jQuery需要抄修改人的代码吗?下面我逐个介jQuery用于效果理的方法。
hide() 藏匹配

<p id="a">Hello Again</p><a href="#" onClick=' ("#a").hide()'>jQuery</a>

当点击连,ida象的display变为none
show() 示匹配
hide(speed) 以一定的速度藏匹配象,其大小(长宽)和透明度都逐渐变化到0speed3("slow", "normal", "fast"),也可以是自定的速度。
show(speed) 以一定的速度示匹配象,其大小(长宽)和透明度都由0渐变化到正常
hide(speed, callback) show(speed, callback) 示和束后行函数callback
toggle() toggle(speed) 如果当前匹配藏,则显示他,如果当前是示的,就藏,toggle(speed),其大小(长宽)和透明度都随之逐渐变化。

<img src="1.jpg" style="width:150px"/>
<a href="#" onClick='$("img").toggle("slow")'>jQuery</a>


fadeIn(speeds) fadeOut(speeds) 根据速度整透明度来示或藏匹配象,注意有hide(speed)show(speed)fadeInfadeOut都只整透明度,不整大小

<img src="1.jpg" style="display:none"/><a href="#" onClick='$("img ").fadeIn("slow")'> jQuery </a>

击连接后可以看到片逐渐显示。
fadeIn(speed, callback) fadeOut(speed, callback) callback函数,先通过调整透明度来示或藏匹配象,当束后callback函数

<img src="1.jpg"/>
<a href="#" onClick='$("img ").fadeIn("slow",function(){ alert("Animation Done."); })'> jQuery </a>

击连接后可以看到片逐渐显,示完全后对话
fadeTo(speed, opacity, callback) 将匹配象以speed速度整倒透明度opacity,然后行函数callbackOpacity终显示的透明度(0-1).

<img src="1.jpg"/><br>
<a href="#" onClick='$("img ").fadeTo("slow",0.55,function(){ alert("Animation Done."); })'> jQuery </a>

大家可以看一下自己看看效果,如果不用jQuery写原始javascript脚本可能很多代
slideDown(speeds) 将匹配象的高度由0以指定速率平滑的化到正常!

<img src="1.jpg" style="display:none"/>
<a href="#" onClick='$("img ").slideDown("slow")'>jQuery</a>


slideDown(speeds,callback) 将匹配象的高度由0化到正常!束后行函数callback

slideUp("slow") slideUp(speed, callback) 匹配象的高度由正常化到0

slideToggle("slow") 如果匹配象的高度正常渐变化到0,若0渐变化到正常

六:事件

hover(Function, Function) 当鼠move over第一个function,当鼠move out第二个function
式:<style>.red{color:#FF0000}</style>
Html
<div id="a">sdf</div>
jQuery
及效果

$(function(){
$("#a").hover(
function(){$(this).addClass("red");},
function(){ $(this).removeClass("red");
});
})

效果是当鼠移到ida时图层增加一个red式,离开层时移出red
toggle(Function, Function) 当匹配元素第一次被点击时第一个函数,当第二次被点击时第二个函数
式:<style>.red{color:#FF0000}</style>
Html
<div id="a">sdf</div>
jQuery
及效果

$(function(){
$("#a"). toggle (
function(){$(this).addClass("red");},
function(){ $(this).removeClass("red");
});
})

效果是当鼠ida时图层增加一个red式,离开层时移出red
bind(type, fn) 将一个事件和触事件的方式定到匹配象上。
trigger(type) type形式的事件。$("p").trigger("click")
有:unbind() unbind(type) unbind(type, fn)

Dynamic event(Function) 定和取消定提供函数的捷方式
例:

$("#a").bind("click",function() {
$(
this).addClass("red");
})

也可以这样写:

$("#a").click(function() {
$(
this).addClass("red");
});

效果是当鼠ida时图层增加一个red式,
jQuery提供的函数
用于browers事件
error(fn) load(fn) unload(fn) resize(fn) scroll(fn)

用于form事件
change(fn) select(fn) submit(fn)
用于keyboard事件
keydown(fn) keypress(fn) keyup(fn)

用于mouse事件
click(fn) dblclick(fn) mousedown(fn) mousemove(fn)
mouseout(fn) mouseover(fn) mouseup(fn)

用于UI事件
blur(fn) focus(fn)
以上事件的展再5
例,click(fn) click() unclick() oneclick(fn) unclick(fn)
click(fn)
:增加一个点
击时某函数的事件
click()
:可以在其他事件中
行匹配象的click事件。
unclick ()
:不
行匹配象的click事件。
oneclick(fn)
:只增加可以
行一次的click事件。
unclick (fn)
:增加一个点
击时不触某函数的事件。
上面列
的用于browersformkeyboardmouseUI的事件都可以按以上方法展。

七:Ajax支持

通用方式:
$.ajax(prop) 一个ajax求,回去程数据,prop是一个hash表,它可以传递key/value有以下几种
(String)type
:数据
传递方式(getpost)
((String)url
:数据
面的url
((String)data
传递数据的参数字符串,只适合post方式
((String)dataType
:期待数据返回的数据格式(例如 "xml", "html", "script", "json")
((Boolean)ifModified
: 当最后一次
求的相化是才成功返回,默认值false
((Number)timeout:
时间迟请求的时间。可以参考$.ajaxTimeout
((Boolean)global
:是否
当前求触ajax全局事件,默认为true
((Function)error
:当求失败时的函数。
((Function)success
:当
求成功函数
((Function)complete
:当
求完成后出函数
jQuery

$.ajax({url: "ajax.htm",
success:
function(msg){
$(div"#a").html(msg);
}
});

ajax.htm返回的内容作idadiv内容

$.ajax({ url: "ajax.aspx",
type:"get",
dataType:"html",
data: "name=John&location=Boston",
success:
function(msg){
$("#a").html(msg);
}
});

get方式向ajax.aspx参数,并将返回内容负给ida象。
$.ajaxTimeout(time) 时间
$.ajaxTimeout( 5000 )
其它化方式:

$.get(url, params, callback) get方式向传递参数,求完成后理函数,除了url外,其它参数任意选择

$.get( "ajax.htm" , function(data){ $("#a").html(data) })

$.get( "ajax.asp",
{ name: "young", age: "25" },
function(data){ alert("Data Loaded: " + data); }
)

$.getIfModified(url, params, callback) get方式向传递参数,从最后一次求后如果数据有化才作出响行函数callback
$.getJSON(url, params, callback) get方式向json传递参数,求完成后理函数callback
$.getScript(url, callback) get方式入并运行一个javascript文件。求完成后理函数callback
$.post(url, params, callback) post方式向传递参数,求完成后理函数callback
load(url, params, callback) 入一个程文件并DOM中,并行函数callback

$("#a").load("ajax.htm", function() { alert("load is done"); } );

仰天一笑 徐羽ajax.htm求,将返回果装入ida的内容中,然后再行函数callback
loadIfModified(url, params, callback) get方式向传递参数,从最后一次求后如果数据有化才作出响,将返回DOM中,并行函数callback
ajaxStart(callback) ajax错误时执行函数callback
ajaxComplete(callback) ajax求完成时执行函数callback
ajaxError(callback) ajax错误时执行函数callback
ajaxStop(callback) ajax求停止时执行函数callback
ajaxSuccess(callback) ajax求成功时执行函数callback


jQuery插件

随着jQuery的广泛使用,已了大量jQuery插件,如thickboxiFXjQuery-googleMap等,简单的引用些源文件就可以方便的使用些插件。里我简单的介一些网址供大家参考,些网站提供了大量的demo,并且使用及其简单,及E文不好,也能快速掌握!
http://jquery.com/plugins 官方推荐
http://interface.eyecon.ro/demos 效果超棒,使用更简单,一定有你喜的!
http://www.dyve.net/jquery/
http://bassistance.de/jquery-plugins

$.ajax()定义和用法

ajax() 方法通过 HTTP 请求加载远程数据。

该方法是 jQuery 底层 AJAX 实现。简单易用的高层实现见 $.get, $.post 等。$.ajax() 返回其创建的 XMLHttpRequest 对象。大多数情况下你无需直接操作该函数,除非你需要操作不常用的选项,以获得更多的灵活性。

最简单的情况下,$.ajax() 可以不带任何参数直接使用。

注意:所有的选项都可以通过 $.ajaxSetup() 函数来全局设置。

语法

jQuery.ajax([settings])
参数描述
settings

可选。用于配置 Ajax 请求的键值对集合。

可以通过 $.ajaxSetup() 设置任何选项的默认值。

参数

options

类型:Object

可选。AJAX 请求设置。所有选项都是可选的。

async

类型:Boolean

默认值: true。默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。

注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。

beforeSend(XHR)

类型:Function

发送请求前可修改 XMLHttpRequest 对象的函数,如添加自定义 HTTP 头。

XMLHttpRequest 对象是唯一的参数。

这是一个 Ajax 事件。如果返回 false 可以取消本次 ajax 请求。

cache

类型:Boolean

默认值: true,dataType 为 script 和 jsonp 时默认为 false。设置为 false 将不缓存此页面。

jQuery 1.2 新功能。

complete(XHR, TS)

类型:Function

请求完成后回调函数 (请求成功或失败之后均调用)。

参数: XMLHttpRequest 对象和一个描述请求类型的字符串。

这是一个 Ajax 事件。

contentType

类型:String

默认值: "application/x-www-form-urlencoded"。发送信息至服务器时内容编码类型。

默认值适合大多数情况。如果你明确地传递了一个 content-type 给 $.ajax() 那么它必定会发送给服务器(即使没有数据要发送)。

context

类型:Object

这个对象用于设置 Ajax 相关回调函数的上下文。也就是说,让回调函数内 this 指向这个对象(如果不设定这个参数,那么 this 就指向调用本次 AJAX 请求时传递的 options 参数)。比如指定一个 DOM 元素作为 context 参数,这样就设置了 success 回调函数的上下文为这个 DOM 元素。

就像这样:

$.ajax({ url: "test.html", context: document.body, success: function(){
        $(this).addClass("done");
      }});
dataObject

类型:String

发送到服务器的数据。将自动转换为请求字符串格式。GET 请求中将附加在 URL 后。查看 processData 选项说明以禁止此自动转换。必须为 Key/Value 格式。如果为数组,jQuery 将自动为不同值对应同一个名称。如 {foo:["bar1", "bar2"]} 转换为 '&foo=bar1&foo=bar2'。

dataFilter

类型:Function

给 Ajax 返回的原始数据的进行预处理的函数。提供 data 和 type 两个参数:data 是 Ajax 返回的原始数据,type 是调用 jQuery.ajax 时提供的 dataType 参数。函数返回的值将由 jQuery 进一步处理。

dataType

类型:String

预期服务器返回的数据类型。如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息来智能判断,比如 XML MIME 类型就被识别为 XML。在 1.4 中,JSON 就会生成一个 JavaScript 对象,而 script 则会执行这个脚本。随后服务器端返回的数据会根据这个值解析后,传递给回调函数。可用值:

  • "xml": 返回 XML 文档,可用 jQuery 处理。
  • "html": 返回纯文本 HTML 信息;包含的 script 标签会在插入 dom 时执行。
  • "script": 返回纯文本 JavaScript 代码。不会自动缓存结果。除非设置了 "cache" 参数。注意:在远程请求时(不在同一个域下),所有 POST 请求都将转为 GET 请求。(因为将使用 DOM 的 script标签来加载)
  • "json": 返回 JSON 数据 。
  • "jsonp": JSONP 格式。使用 JSONP 形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。
  • "text": 返回纯文本字符串
error

类型:Function

默认值: 自动判断 (xml 或 html)。请求失败时调用此函数。

有以下三个参数:XMLHttpRequest 对象、错误信息、(可选)捕获的异常对象。

如果发生了错误,错误信息(第二个参数)除了得到 null 之外,还可能是 "timeout", "error", "notmodified" 和 "parsererror"。

这是一个 Ajax 事件。

global

类型:Boolean

是否触发全局 AJAX 事件。默认值: true。设置为 false 将不会触发全局 AJAX 事件,如 ajaxStart 或 ajaxStop 可用于控制不同的 Ajax 事件。

ifModified

类型:Boolean

仅在服务器数据改变时获取新数据。默认值: false。使用 HTTP 包 Last-Modified 头信息判断。在 jQuery 1.4 中,它也会检查服务器指定的 'etag' 来确定数据没有被修改过。

jsonp

类型:String

在一个 jsonp 请求中重写回调函数的名字。这个值用来替代在 "callback=?" 这种 GET 或 POST 请求中 URL 参数里的 "callback" 部分,比如 {jsonp:'onJsonPLoad'} 会导致将 "onJsonPLoad=?" 传给服务器。

jsonpCallback

类型:String

为 jsonp 请求指定一个回调函数名。这个值将用来取代 jQuery 自动生成的随机函数名。这主要用来让 jQuery 生成度独特的函数名,这样管理请求更容易,也能方便地提供回调函数和错误处理。你也可以在想让浏览器缓存 GET 请求的时候,指定这个回调函数名。

password

类型:String

用于响应 HTTP 访问认证请求的密码

processData

类型:Boolean

默认值: true。默认情况下,通过data选项传递进来的数据,如果是一个对象(技术上讲只要不是字符串),都会处理转化成一个查询字符串,以配合默认内容类型 "application/x-www-form-urlencoded"。如果要发送 DOM 树信息或其它不希望转换的信息,请设置为 false。

scriptCharset

类型:String

只有当请求时 dataType 为 "jsonp" 或 "script",并且 type 是 "GET" 才会用于强制修改 charset。通常只在本地和远程的内容编码不同时使用。

success

类型:Function

请求成功后的回调函数。

参数:由服务器返回,并根据 dataType 参数进行处理后的数据;描述状态的字符串。

这是一个 Ajax 事件。

traditional

类型:Boolean

如果你想要用传统的方式来序列化数据,那么就设置为 true。请参考工具分类下面的 jQuery.param 方法。

timeout

类型:Number

设置请求超时时间(毫秒)。此设置将覆盖全局设置。

type

类型:String

默认值: "GET")。请求方式 ("POST" 或 "GET"), 默认为 "GET"。注意:其它 HTTP 请求方法,如 PUT 和 DELETE 也可以使用,但仅部分浏览器支持。

url

类型:String

默认值: 当前页地址。发送请求的地址。

username

类型:String

用于响应 HTTP 访问认证请求的用户名。

xhr

类型:Function

需要返回一个 XMLHttpRequest 对象。默认在 IE 下是 ActiveXObject 而其他情况下是 XMLHttpRequest 。用于重写或者提供一个增强的 XMLHttpRequest 对象。这个参数在 jQuery 1.3 以前不可用。

回调函数

如果要处理 $.ajax() 得到的数据,则需要使用回调函数:beforeSend、error、dataFilter、success、complete。

beforeSend

在发送请求之前调用,并且传入一个 XMLHttpRequest 作为参数。

error

在请求出错时调用。传入 XMLHttpRequest 对象,描述错误类型的字符串以及一个异常对象(如果有的话)

dataFilter

在请求成功之后调用。传入返回的数据以及 "dataType" 参数的值。并且必须返回新的数据(可能是处理过的)传递给 success 回调函数。

success

当请求之后调用。传入返回后的数据,以及包含成功代码的字符串。

complete

当请求完成之后调用这个函数,无论成功或失败。传入 XMLHttpRequest 对象,以及一个包含成功或错误代码的字符串。

数据类型

$.ajax() 函数依赖服务器提供的信息来处理返回的数据。如果服务器报告说返回的数据是 XML,那么返回的结果就可以用普通的 XML 方法或者 jQuery 的选择器来遍历。如果见得到其他类型,比如 HTML,则数据就以文本形式来对待。

通过 dataType 选项还可以指定其他不同数据处理方式。除了单纯的 XML,还可以指定 html、json、jsonp、script 或者 text。

其中,text 和 xml 类型返回的数据不会经过处理。数据仅仅简单的将 XMLHttpRequest 的 responseText 或 responseHTML 属性传递给 success 回调函数。

注意:我们必须确保网页服务器报告的 MIME 类型与我们选择的 dataType 所匹配。比如说,XML的话,服务器端就必须声明 text/xml 或者 application/xml 来获得一致的结果。

如果指定为 html 类型,任何内嵌的 JavaScript 都会在 HTML 作为一个字符串返回之前执行。类似地,指定 script 类型的话,也会先执行服务器端生成 JavaScript,然后再把脚本作为一个文本数据返回。

如果指定为 json 类型,则会把获取到的数据作为一个 JavaScript 对象来解析,并且把构建好的对象作为结果返回。为了实现这个目的,它首先尝试使用 JSON.parse()。如果浏览器不支持,则使用一个函数来构建。

JSON 数据是一种能很方便通过 JavaScript 解析的结构化数据。如果获取的数据文件存放在远程服务器上(域名不同,也就是跨域获取数据),则需要使用 jsonp 类型。使用这种类型的话,会创建一个查询字符串参数 callback=? ,这个参数会加在请求的 URL 后面。服务器端应当在 JSON 数据前加上回调函数名,以便完成一个有效的 JSONP 请求。如果要指定回调函数的参数名来取代默认的 callback,可以通过设置 $.ajax() 的 jsonp 参数。

注意:JSONP 是 JSON 格式的扩展。它要求一些服务器端的代码来检测并处理查询字符串参数。

如果指定了 script 或者 jsonp 类型,那么当从服务器接收到数据时,实际上是用了 <script> 标签而不是 XMLHttpRequest 对象。这种情况下,$.ajax() 不再返回一个 XMLHttpRequest 对象,并且也不会传递事件处理函数,比如 beforeSend。

发送数据到服务器

默认情况下,Ajax 请求使用 GET 方法。如果要使用 POST 方法,可以设定 type 参数值。这个选项也会影响 data 选项中的内容如何发送到服务器。

data 选项既可以包含一个查询字符串,比如 key1=value1&key2=value2 ,也可以是一个映射,比如 {key1: 'value1', key2: 'value2'} 。如果使用了后者的形式,则数据再发送器会被转换成查询字符串。这个处理过程也可以通过设置 processData 选项为 false 来回避。如果我们希望发送一个 XML 对象给服务器时,这种处理可能并不合适。并且在这种情况下,我们也应当改变 contentType 选项的值,用其他合适的 MIME 类型来取代默认的 application/x-www-form-urlencoded 。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值