jquery

JQuery

一.概要及基礎

1.輕量級

2.強大的選擇器

3.出色的dom操作的封裝

4.可靠的事件處理機制

5.完善的ajax

6.不污染頂級變量

釋放JQuery 對$符號的控制權

JQuery.noConflict();

7.出色的瀏覽器兼容性

8.鏈式操作方式

9.隱式迭代

10.行爲層與結構層的分離

11.豐富的插件支持

12.完善的文檔

13.開源

頁面加載事件(可以寫多個ready())

$(document).ready(function(){

alert("hello world");

})

$(function(){

//Todo();

});

鏈式操作:JQuery 允許你在一句代碼中操做任何與其相關聯的元素,包括其子元素、父元

素等

//選擇名稱爲myDiv 的元素,爲其自身添加css1 的樣式,然後再選擇其所有子元素a,爲其

移除css2 樣式

$("#myDiv").addClass("css1").children("a").removeClass("css2");

Query 中獲得一個對象的所有子元素內容

$("#myDiv").html()

JQuery 中的變量與DOM 中的變量

var $myVar = "";

var myVar = "";

DOM 對象轉換成JQuery 對象

var obj = documnet.getElementById("myDiv");

var $obj = $(obj);

JQuery 對象轉換成DOM 對象

var $obj = $("#myDiv");

var obj = $obj.get(0); //或者var obj = $obj[0];

二.選擇器

JQuery 完善的處理機制

document.getElementById("test").style.color ="red"; //如果test 不存在,則頁面出

現異常

$("#test").css("color","red"); //哪怕頁面沒有名稱爲test 的元素,也不會報錯。它是

一個JQuery 對象

判斷頁面是否選擇的對象

if( $(".class").length >0 ){

// todo something

}

基本選擇器

$("#myDiv") //根據給定的ID 選擇匹配的元素,返回:單個元素

$(".myClass") //根據給定的樣式名稱選擇匹配的元素,返回:集合元素

$("div") //根據給定的元素名稱選擇匹配的元素,返回:集合元素

$("#myDiv,div.myClass,span") //根據給定的規則選擇匹配的元素,返回:集合元素

$("*") //選擇頁面所有元素,返回:集合元素

層次選擇器

$("div span") //選擇所有DIV 元素下的所有SPAN 元素(所有後代元素),返回:集合元

$("div>span") //選擇所有DIV 元素下的SPAN 子元素(僅子元素),返回:集合元素

$(".myClass+div") //選擇樣式名稱爲myClass 的下一個DIV 元素,返回:集合元素

$(".myClass+div") //等價於$(".myClass").next("div");

$(".myClass~div") //選擇樣式名稱爲myClass 之後的所有DIV 元素,返回:集合元素

$(".myClass~div") //等價於$(".myClass").nextAll();

$(".myClass").siblings("div") //選擇樣式名稱爲myClass 的元素的所有同輩DIV 元素

(無論前後),返回集合元素

過濾選擇器(index從0開始)

$("div:first") //選擇所有DIV 元素下的第一個DIV 元素,返回:單個元素

$("div:last") //選擇所有DIV 元素下的最後一個DIV 元素,返回:單個元素

$("div:not(.myClass)") //選擇所有樣式不包括myClass 的DIV 元素,返回:集合元素

$("div:even") //選擇所有索引是偶數的DIV 元素,返回:集合元素

$("div:odd") //選擇所有索引是奇數的DIV 元素,返回:集合元素

$("div:eq(index)") //選擇所有索引等於index 的DIV 元素,返回:集合元素

$("div:gt(index)") //選擇所有索引大於index 的DIV 元素,返回:集合元素

$("div:lt(index)") //選擇所有索引小於index 的DIV 元素,返回:集合元素

$(":header") //選擇所有標題元素(h1,h2,h3),返回:集合元素

$("div:animated") //選擇所有正在執行去畫的DIV 元素,返回:集合元素

子元素過濾選擇器(index從1開始)

$(":nth-child(index/even/odd)") //選擇每個父元素下的第index/偶數/奇數個子元素,

返回:集合元素

$(":first-child") //選擇每個父元素下的第一個子元素,返回:集合元素

$(":last-child") //選擇每個父元素下的最後一個子元素,返回:集合元素

$("ul li:only-child") //在UL 元素中選擇只有一個LI 元素的子元素,返回:集合元素

內容過濾選擇器

$(":contains(text)") //選擇所有內容包含text 的元素,返回:集合元素

$("div:empty") //選擇所有內容爲空的DIV 元素,返回:集合元素

$("div:has(span)") //選擇所有含有SPAN 子元素的DIV 元素,返回:集合元素

$("div:parent") //選擇所有含有子元素的DIV 元素,返回:集合元素

可見性選擇器

$(":hidden") //選擇所有不可見的元素(type="hidden" style="display:none"

style="visibility:none"),返回:集合元素

$(":visible") //選擇所有可見的元素,返回:集合元素

屬性過濾選擇器

$("[id]") //選擇所有含有id 屬性的元素,返回:集合元素

$("[class=myClass]") //選擇所有class 屬性值是myClass 的元素,返回:集合元素

$("[class!=myClass]") //選擇所有class 屬性值不是myClass 的元素,返回:集合元素

$("[alt^=begin]") //選擇所有alt 屬性值以begin 開始的元素,返回:集合元素

$("[alt^=end]") //選擇所有alt 屬性值以end 結束的元素,返回:集合元素

$("[alt*=some]") //選擇所有alt 屬性值含有some 的元素,返回:集合元素

$("div[id][class=myClass]") //選擇所有含有id 屬性的並且class 屬性值是myClass 的

元素,返回:集合元素

表單對象屬性選擇器

$("#myForm:enabled") //選擇ID 屬性爲myForm 的表單的所有可用元素,返回:集合元素

$("#myForm:disabled") //選擇ID 屬性爲myForm 的表單的所有不可用元素,返回:集合元

$("#myForm:checked") //選擇ID 屬性爲myForm 的表單的所有所有被選中的元素,返回:

集合元素

$("#myForm:selected") //選擇ID 屬性爲myForm 的表單的所有所有被選中的元素,返回:

集合元素

表單選擇器

$(":input") //選擇所有<input> <select> <button> <textarea>元素,返回:集合元素

$(":text") //選擇所有單行文本框元素,返回:集合元素

$(":password") //選擇所有密碼框元素,返回:集合元素

$(":radio") //選擇所有單選框元素,返回:集合元素

$(":checkbox") //選擇所有複選框元素,返回:集合元素

$(":submit") //選擇所有提交按鈕元素,返回:集合元素

$(":p_w_picpath") //選擇所有圖片按鈕元素,返回:集合元素

$(":reset") //選擇所有重置按鈕元素,返回:集合元素

$(":button") //選擇所有按鈕元素,返回:集合元素

$(":file") //選擇所有上傳域元素,返回:集合元素

$(":hidden") //選擇所有不可見域元素,返回:集合元素

$(":text") //選擇所有單選文本框元素,返回:集合元素

$(function(){

var $category = $("ul li:gt(5):not(:last)");

$category.hide();

var $toggleBtn = $("div.showmore >a");

$toggleBtn.click(funtion(){

if($category.is(":visible"))

{

$category.hide();

$(".showmore a span").css("backgroud", "url(down.gif)");

.text("顯示全部");

$("ul li").removeClass("promoted");

}

else

{

$category.show();l

$(".showmore a span").css("background","url(up.gif)");

.text("簡單顯示");

$("ul li").filter(":contains(' 佳能'),:contains(' 尼康

')").addClass("promoted");

}

return false;

});

});

三.DOM操作

查找元素節點

var str = $("#myDiv").text(); //<div id="myDiv" title="hello">123</div>

alert(str); //結果:123

查找屬性節點

var str = $("#myDiv").attr("title"); //<div id="myDiv" title="hello">123</div>

alert(str); //結果:hello

創建元素節點

var $li1 = $("<span></span>"); //傳入元素標記,自動包裝並創建第一個li 元素對象

var $li2 = $("<span></span>"); //第二個,創建時需要遵循XHTML 規則(閉合、小寫)

$("#myDiv").append($li1); //往id 爲myDiv 的元素中添加一個元素

$("#myDiv").append($li2); //結果:<div

id="myDiv"><span></span><span></span></div>

$("#myDIv").append($li1).append($li2); //客串:傳說中的鏈式寫法,省一行代碼^_^

創建文本節點

var $li1 = $("<span>first</span>");

var $li2 = $("<span>second</span>");

$("#myDIv").append($li1).append($li2);

//結果:<div id="myDiv"><span>first</span><span>second</span></div>

創建屬性節點

var $li1 = $("<span title="111">first</span>");

var $li2 = $("<span title="222">second</span>");

$("#myDIv").append($li1).append($li2);

//結果:<div id="myDiv"><span title="111">first</span><span

title="222">second</span></div>

插入節點

$("#myDiv").append("<span></span>"); //往id 爲myDiv 的元素插入span 元素

$("<span></span>").appendTo("#myDiv"); //倒過來,將span 元素插入到id 爲myDiv 的

元素

$("#myDiv").prepend("<span></span>"); //往id 爲myDiv 的元素內最前面插入span 元

$("<span></span>").prependTo("#myDiv"); //倒過來,將span 元素插入到id 爲myDiv 的

元素內的最前面

$("#myDiv").after("<span></span>"); //往id 爲myDiv 的元素後面插入span 元素(同

級,不是子元素)

$("<span></span>").insertAfter("#myDiv"); //倒過來,將span 元素插入到id 爲myDiv

的元素後面(同級,不是子元素)

$("#myDiv").before("<span></span>"); //往id 爲myDiv 的元素前面插入span 元素(同

級,不是子元素)

$("<span></span>").insertBefore("#myDiv"); //倒過來,將span 元素插入到id 爲myDiv

的元素前面(同級,不是子元素)

刪除節點

$("#myDiv").remove(); //將id 爲myDiv 的元素移除

清空節點

$("#myDiv").remove("span"); //將id 爲myDiv 的元素內的所有span 元素移除

複製節點

$("#myDiv span").click( function(){ //點擊id 爲myDiv 的元素內的span 元素,觸發

click 事件

$(this).clone().appendTo("#myDiv"); //將span 元素克隆,然後再添加到id 爲myDiv 的

元素內

$(this).clone(true).appendTo("#myDiv"); //如果clone 傳入true 參數,表示同時複製

事件

})

替換節點

$("p").replaceWith("<strong>您好</strong>"); //將所有p 元素替換成後者<p>您好

</p> –> <strong>您好</strong>

$("<strong>您好</strong>").replaceAll("p"); //倒過來寫,同上

包裹節點

$("strong").wrap("<b></b>"); //用b 元素把所有strong 元素單獨包裹起來<b><strong>

您好</strong></b><b><strong>您好</strong></b>

$("strong").wrapAll("<b></b>"); //用b 元素把所有strong 元素全部包裹起來

<b><strong>您好</strong><strong>您好</strong></b>

$("strong").wrapInner("<b></b>"); //把b 元素包裹在strong 元素內<strong><b>您好

</b></strong>

屬性操作

var txt = $("#myDiv").arrt("title"); //獲取id 爲myDiv 的元素的title 屬性

$("#myDiv").attr("title","我是標題內容"); //設置id 爲myDiv 的元素的title 屬性的

$("#myDiv").attr({"title":"我是標題內容", "alt":"我還是標題"); //一次性設置多個

屬性的值

$("#myDiv").removeArrt("alt"); //移除id 爲myDiv 的元素的title 屬性

樣式操作

var txt = $("#myDiv").arrt("class"); //獲取id 爲myDiv 的元素的樣式

$("#myDiv").attr("class","myClass"); //設置id 爲myDiv 的元素的樣式

$("#myDiv").addClass("other"); //在id 爲myDiv 的元素中追加樣式

$("#myDiv").removeClass("other"); //在id 爲myDiv 的元素中移除other 樣式

$("#myDiv").removeClass("myClass other"); //在id 爲myDiv 的元素中移除myClass 和

other 多個樣式

$("#myDiv").removeClass(); //在id 爲myDiv 的元素中移除所有樣式

$("#myDiv").toggleClass("other"); //切換樣式,在有other 樣式和沒other 樣式之間切

$("#myDiv").hasClass("other"); //判斷是否有other 樣式

設置和獲取HTML、文本和值

alert( $("#myDiv").html() ); //獲取id 爲myDiv 的元素的HTML 代碼(相當於innerHTML)

$("#myDiv").html("<span>hello</span>"); //設置id 爲myDiv 的元素的HTML 代碼

alert( $("#myDiv").text() ); //獲取id 爲myDiv 的元素的HTML 代碼(相當於innerText)

$("#myDiv").text("hello"); //設置id 爲myDiv 的元素的HTML 代碼

alert( $("#myInput").val() ); //獲取id 爲myDiv 的元素的value 值(支持文本框、下

拉框、單選框、複選框等)

$("#myInput").val("hello"); //設置id 爲myDiv 的元素的value 值(下拉框、單選框、

複選框帶有選中效果)

遍歷節點

var $cList = $("#myDiv").children(); //獲取id 爲myDiv 的元素的子元素(只考慮子元

素,不考慮後代元素)

var $sNext = $("#myDiv").next(); //獲取id 爲myDiv 的元素的下一個同輩元素

var $sPrev = $("#myDiv").prev(); //獲取id 爲myDiv 的元素的上一個同輩元素

var $sSibl = $("#myDiv").siblings(); //獲取id 爲myDiv 的元素的所有同輩元素

var $pClos = $("#myDiv").closest("span"); //獲取id 爲myDiv 的元素本身開始,最接

近的span 元素(向上查找)

CSS-DOM 操作

$("#myDiv").css("color"); //獲取id 爲myDiv 的元素的color 樣式的值

$("#myDiv").css("color", "blue"); //設置id 爲myDiv 的元素的color 樣式的值

$("#myDiv").css({"color":"blue", "fontSize":"12px"}); //設置id 爲myDiv 的元素的

color 樣式的值(多個)

$("#myDiv").css("opacity", "0.5"); //設置id 爲myDiv 的元素的透明度(兼容瀏覽器)

$("#myDiv").css("height"); //獲取id 爲myDiv 的元素的高度(單位:px,兼容瀏覽器)

$("#myDiv").height(); //同上(實際高度)

$("#myDiv").css("width"); //獲取id 爲myDiv 的元素的寬度(單位:px,兼容瀏覽器)

$("#myDiv").width(); //同上(實際寬度)

var offset = $("#myDiv").offset(); //獲取id 爲myDiv 的元素在當前窗口的相對偏移量

alert( offset.top + "|" + offset.left );

var offset = $("#myDiv").position(); //獲取id 爲myDiv 的元素相對於最近一個

position 設置爲relative 或absolute 的父元素的相對偏移量

alert( offset.top + "|" + offset.left );

$("#txtArea").scrollTop(); //獲取id 爲txtArea 的元素滾動條距離頂端的距離

$("#txtArea").scrollLeft(); //獲取id 爲txtArea 的元素滾動條距離左側的距離

$("#txtArea").scrollTop(100); //設置id 爲txtArea 的元素滾動條距離頂端的距離

$("#txtArea").scrollLeft(100); //設置id 爲txtArea 的元素滾動條距離左側的距離

四.事件及動畫

加載DOM

$(window).load() 等價於window.onload 事件

$(document).ready() 相當於window.onload 事件,但有些區別:

(1)執行時機:

window.onload 是在網頁中所有元素(包括元素的所有關聯文件)完全加載後才執行

$(document).ready() 是在DOM 完全就緒時就可以被調用,此時,並不意味着這些元素關係

的文件都已經下載完畢

(2)多次使用:可以在同一個頁面註冊多個$(document).ready()事件

(3)簡寫方式:可以縮寫成$(function(){ }) 或$().ready()

事件綁定

當文檔裝載完成後,可以通過bind()方法,爲特定的元素進行事件的綁定,可重複多次使用

bind( type, [data, ] fn );

type:指事件的類型:

blur(失去焦點)、focus(獲得焦點)

load(加載完成)、unload(銷燬完成)

resize(調整元素大小)、scroll(滾動元素)

click(單擊元素事件)、dbclick(雙擊元素事件)

mousedown(按下鼠標)、mouseup(鬆開鼠標)

mousemove(鼠標移過)、mouseover(鼠標移入)、mouseout(鼠標移出)

mouseenter(鼠標進入)、mouseleave(鼠標離開)

change(值改變)、select(下拉框索引改變)、submit(提交按鈕)

keydown(鍵盤按下)、keyup(鍵盤松開)、keypress(鍵盤單擊)

error(異常)

data:指事件傳遞的屬性值,event.data 額外傳遞給對象事件的值

fn:指綁定的處理函數,在此函數體內,$(this)指攜帶相應行爲的DOM 元素

合併事件

hover(enter,leave):鼠標移入執行enter、移出事件執行leave

$("#myDiv").hover( function(){

$(this).css("border", "1px solid black");0

}, function(){

$(this).css("border", "none");

});

toggle(fn1,fn2,…fnN):鼠標每點擊一次,執行一個函數,直到最後一個後重復

$("#myDiv").toggle( function(){

$(this).css("border", "1px solid black");0

}, function(){

$(this).css("border", "none");

});

事件冒泡

下面的例子,BODY 元素下有DIV 元素,DIV 元素下有SPAN 元素,分別將三種元素都註冊

click 事件。

那麼,click 事件會按照DOM 的層次結構,像水泡一樣不斷向上直到頂端,所以稱之爲事件

冒泡。

<body><div><span>我是SPAN 我怕誰</span></div></body>

$("span").bind("click", function(){ alert(‘span click’); });

$("div").bind("click", function(){ alert(‘div click’); });

$("body").bind("click", function(){ alert(‘body click’); });

阻止冒泡

解決這個問題的辦法是:在SPAN 執行完click 事件後,停止事件冒泡。

$("span").bind("click", function(event){

alert(‘span click’);

event.stopPropagation(); //停止冒泡

});

阻止默認行爲

提交按鈕在提交前做相應的邏輯判斷,當不滿足時

$("#btnSubmit").bind("click", function(event){

event.preventDefault(); //阻止默認行爲相當於return false;

});

事件對象的屬性

$("#myDiv").bind("click", function(event){ });

event.type() //返回:click

event.target() //獲取當前元素

event.relatedTarget() //引發事件的元素

event.pageX()/event.pageY() //獲取鼠標相對於頁面的X 和Y 座標

event.which() //在單擊事件中獲取到對應的按鍵鼠標左中右分別是123

event.metaKey() //獲取操作中的相關功能鍵(ctrl/alt/shift)

移除事件

$("#myDiv").bind("click", fn1 = function(){

alert("function1");

}).bind("click", fn2 = function(){

alert("function2");

}).bind("click", fn3 = function(){

alert("function3");

});

$("#myDiv").unbind(); //移除id 爲myDiv 的元素的所有事件

$("#myDiv").unbind("click"); //移除id 爲myDiv 的元素的所有click 事件

$("#myDiv").unbind("click",fn1); //移除id 爲myDiv 的元素的名稱爲fn1 的click 事

一次性事件:綁定的事件執行一次後自動移除

$("#myDiv").one("click", [data], function(){

alert("function1");

});

觸發事件

$("#btn").trigger("click", [data]); //代碼方式觸發click 事件

$("#btn").click(); //另一種簡寫方式

事件命名空間

$("#myDiv").bind("click.hello", function(){

alert("function1");

});

$("#myDiv").bind("click", function(){

alert("function1");

})

$("div").unbind("click"); //兩個事件都被移除

$("div").unbind(".hello"); //只移除第一個

$("div").unbind("click!"); //只移除第二個(注意感嘆號,指沒有名字空間的)

JQuery 中的動畫

$("div").hide(); //隱藏所有DIV 元素,相當於sytle="display:none"

$("div").show(); //顯示所有DIV 元素

$("div").hide(1000); //一秒內隱藏所有DIV 元素,其它參數還有:slow(600) normal(400)

fast(200)

$("div").show(1000); //一秒內顯示所有DIV 元素

$("div").fadeOut(); //降低元素的不透明度,直至消失(支持速度參數,不會改變寬高)

$("div").fadeIn(); //升高元素的不透明度,直至顯示

$("div").slideUp(); //由下至上收縮元素,直至消失(支持速度參數)

$("div").slideDown(); //由上至下展開元素,直至顯示

自定義動畫animate

$(elem).animate(params, speed, callback);

params:樣式屬性及值的映射{protected:"value", protected:"value"}

speed: 速度參數

callback: 動畫完成後執行函數,可選

$("#myDiv").animate({left:"500px"}, 2000); //兩秒內ID 爲myDiv 的元素移至左邊距

500px 的位置

$("#myDiv").animate({left:"+=500px"}, 2000); //同上,支持累加、累減

$("#myDiv").animate({top:"200px", left:"+=500px"}, 2000); //同上,多重動畫,同時

執行

$("#myDiv").animate({opacity:"0.5"}, 1000) //先變成50%透明

.animate({top:"500px"}, 500) //移至離頂端500px

.animate({left:"500px"}, 500) //移至離左邊500px

.fadeOut(1000); //顯示出來(四個動作爲隊列,一步步執行)

$("#myDiv").stop([cleanQuene] [,gotuEnd]); //停止動畫,參數爲boolean

$("#myDiv").is(":animate") //判斷元素是否在執行動畫

其它動畫

$("#myDiv").toggle(); //顯示與隱藏元素

$("#myDiv").slideToggle(); //展開與收縮元素

$("#myDiv").fadeTo(1000, 0.2); //一秒內將元素透明度調整到20%

五.Ajax應用及插件使用

單選文本框應用(獲得焦點時,加了個特殊的樣式,失去焦點時還原,兼容所有瀏覽器)

$(":input").focus(function(){ this.addClass("inputFocus"); })

.blur(function(){ this.removeClass("inputFocus"); });

多行文本框的應用(放大、縮小多行文本框的高度,限制最大500px,兼容所有瀏覽器)

var $txt = $("#textArea");

$(".bigger").click(function(){

if( $txt.height() < 500) $txt.height( $txt.height() + 50 );

//if( $txt.height() < 500) $txt.animate({height:"+=50"}, 500 );

});

$(".smaller").click(function(){

if( $txt.height() > 100) $txt.height( $txt.height() – 50 );

//if( $txt.height() < 500) $txt.animate({height:"-=50"}, 500 );

});

複選框的應用(實現全選、全不選、反選)

$("#btnCheckedAll").click(function(){ //全選

$("[name=items]:checkbox").attr("checked", true);

});

$("#btnCheckedNone").click(function(){ //全不選

$("[name=items]:checkbox").attr("checked", false);

});

$("#btnCheckedRev").click(function(){ //反選

$("[name=items]:checkbox").each(function(){

$(this).attr("checked", !$(this).attr("checked"));

//this.checked = !this.checked;

}

});

下拉框的應用(將一個下拉列表的選中項搬至另一個下拉列表)

$("#btnAdd").click(function(){ //將選中選項搬過去

$("#mySelect1 option:selected").appendTo("#mySelect2");

});

$("#btnAddAll").click(function(){ //將全部選項搬過去

$("#mySelect1 option").appendTo("#mySelect2");

});

$("#mySelect1").dblclick(function()[ //雙擊項搬過去

$("#mySelect1 option:selected").appendTo("#mySelect2");

}

表單驗證

<form>

<div>

<label>用戶名:</label>

<input type="text" id="txtUid" value="" />

</div>

</form>

$("form :input.required").each(function(){ //往每個class 有required 樣式的input

元素後面添加*號

$(this).parent().append( $("<span class='star'>*</span>") );

});

$("form :input.required").blur(function(){ //失去焦點時驗證域

if( this.value == "" ){

$(this).parent().append( $("<span class='error'>必填字段</span>") );

}

else{

$(this).parent().append( $("<span class='success'>驗證正確</span>") );

$(this).parent().find(".error").remove();

}

}).keyup(function(){ //用戶每點一個鍵觸發

$(this).triggerHandler("blur");

}).focus(function(){ //控制有焦點時觸發

$(this).triggerHandler("blur");

});

$("#btnSubmit").click(function(){

$("form :input.required").trigger("blur"); //讓所有需要驗證的域失去焦點

var errNum = $("form .error").length;

if( errNum ){

alert("有驗證字段失敗,請重新填寫");

return false;

Ajax 應用

load( url [,data] [,callback] )方法

url:要請求的頁面的地址

data:要發送的相關參數

callback:回調函數

$("#myDiv").load("hello.html"); //向myDiv 元素加載hello.html 的內容

$("#myDiv").load("hello.html .myClass"); //篩選,只加載hello.html 中myClass 樣式

的內容

$("#myDiv").load("hello.html", function(){} ); //沒參數的,使用GET 方式

$("#myDiv").load("hello.html", {id:’123′, name:’dier’}, function(){} ); //

有參數的,使用POST 方式

$("#myDiv").load("hello.html", function(responseText, textStatus,

XMLHttpRequest){ //回調函數

//responseText : 請求返回的內容

//textStatus : 請求狀態success error notmodified timeout

//XMLHttpRequest : Ajax 對象

});

$.get( url [,data] [,callback] [,type])和$.post( url [,data] [,callback] [,type])

方法

url:要請求的頁面的地址

data:要發送的相關參數

callback:回調函數

type:指定服務器返回內容的格式xml html script json text _default

$.get( "test.aspx", {id:"123", name:"dier"}, function(data,textStatus){ //回調函

數只有當狀態是success 才觸發

//data : 請求返回的內容

//textStatus : 請求狀態success error notmodified timeout

//當data 是HTML 時,直接加載

$("#myDiv").html(data);

//當data 是XML 時,可篩選&lt;user id="123" name="dier" age="27" /&gt;

var age = $(data).find("user").attr("age");

//當data 是JSON 時,可直接點出屬性來{id:"123", name:"dier", age:"27"}

var age = data.age;

});

getScript(url [,callback])方法

$(function(){ //動態加載JS 腳本

$.getScript("test.js");

$.getScript("test.js", function(){ //回調函數

//do something..

});

});

getJSON(url [,callback])方法

$(function(){ //動態加載JS 腳本

$.getJSON("test.js");

$.getJSON("test.js", function(data){ //回調函數

//do something..

//data : 返回的數據

$.each( data, function(index, item){ //遍歷,相當於foreach

//index : 索引

//item : 當前項內容

//return false; 退出循環

});

});

});

ajax(options)方法

url : 請求的地址

type : 請求的方式GET POST 默認爲GET

timeout : 請求超時時間(單位:毫秒)

data : 請求時發送的參數(String,Object)

dataType : 預期返回的數據類型xml html script json jsonp text

bdforeSend : 發送請求前觸發事件,如果return false 則取消發送

function(XmlHttpRequest){}

complete : 請求完成後觸發事件,不管成功與否function(XmlHttpRequest, textStatus){}

success : 請求完成並且成功時觸發事件function(data, textStatus){}

error : 請求完成並且失敗時觸發事件function(XmlHttpRequest, textStatus,

errorThrown){}

global : 是否爲全局請求,默認爲true,可使用AjaxStart、AjaxStop 控制各種事件

$.ajax({

url : "test.aspx",

type : "POST",

timeout : "3000",

data : {id:"123", name:"dier"},

dataType : "HTML",

success : function(data,textStatus){

$("#myDiv").html( data );

}

error : function(XmlHttpRequest, textStatus, errThrown){

$("#myDiv").html( "請求失敗:" + errThrown );

}

});

序列化字符串serialize()

$.get( "test.aspx", $("#form1").serialize(), function(data,textStatus){

//將form1 整個表單中的所有域序列化成提交的參數,支持自動編碼

});

序列化數組serializeArray()

var arr = $(":checkbox, :radio").serializeArray();

對象序列化param()

var obj = {id:"123", name:"dier", age:"27"};

var kv = $.param(obj); //id=123&name=dier&age=27

JQuery 中的全局Ajax 事件

ajaxStart(callback) //請求開始時觸發

ajaxStop(callback) //請求結束時觸發

ajaxComplete(callback) //請求完成時觸發

ajaxSuccess(callback) //請求成功時觸發

ajaxError(callback) //請求失敗時觸發

ajaxSend(callback) //請求發送前觸發

$("#loading").ajaxStart(function(){ //當有AJAX 請求時顯示,完成時隱藏

$(this).show();

}.ajaxStop(function(){

$(this).hide();

}

);



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章