jQuery是一套跨瀏覽器的JavaScript庫,簡化HTML與JavaScript之間的操作。由約翰·雷西格(John Resig)在2006年1月的BarCamp NYC上發(fā)布第一個版本。目前是由Dave Methvin領(lǐng)導(dǎo)的開發(fā)團隊進行開發(fā)。全球前10000個訪問最高的網(wǎng)站中,有65%使用了jQuery,是目前最受歡迎的JavaScript庫。
jQuery教程
認識jQuery
- jQuery 是一個 JavaScript 庫。
- jQuery 極大地簡化了 JavaScript 編程。
- jQuery 很容易學(xué)習(xí)。
- jQuery 是為事件處理特別設(shè)計的。
- jQuery 擁有可操作 HTML 元素和屬性的強大方法。
- 通過 jQuery,可以很容易地添加新元素/內(nèi)容。
- 通過 jQuery,可以很容易地刪除已有的HTML元素。
- 通過 jQuery,可以很容易地對 CSS 元素進行操作
- 官方網(wǎng)站
- 官方API
- w3school教程
引入jQuery
jQuery 庫可以通過一行簡單的標記被添加到網(wǎng)頁中。
本地引入
<head>
<script src="jquery.js"></script>
</head>
Google CDN
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
</head>
Microsoft CDN
<head>
<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.0.js"></script>
</head>
jQuery 語法
jQuery 語法是為 HTML 元素的選取編制的,可以對元素執(zhí)行某些操作。
基礎(chǔ)語法$(selector).action()
- 美元符號定義 jQuery
- 選擇符(selector)“查詢”和“查找” HTML 元素
- jQuery 的 action() 執(zhí)行對元素的操作
示例
- $(this).hide() - 隱藏當(dāng)前元素
- $("p").hide() - 隱藏所有段落
- $(".test").hide() - 隱藏所有 class="test" 的所有元素
- $("#test").hide() - 隱藏所有 id="test" 的元素
jQuery選擇器
jQuery 元素選擇器
- jQuery 使用 CSS 選擇器來選取 HTML 元素。
- $("p") 選取
<p>
元素。 - $("p.intro") 選取所有 class="intro" 的
<p>
元素。 - $("p#demo") 選取所有 id="demo" 的
<p>
元素。
jQuery 屬性選擇器
- jQuery 使用 XPath 表達式來選擇帶有給定屬性的元素。
- $("[href]") 選取所有帶有 href 屬性的元素。
- $("[href='#']") 選取所有帶有 href 值等于 "#" 的元素。
- $("[href!='#']") 選取所有帶有 href 值不等于 "#" 的元素。
- $("[href$='.jpg']") 選取所有 href 值以 ".jpg" 結(jié)尾的元素。
jQuery CSS 選擇器
- jQuery CSS 選擇器可用于改變 HTML 元素的 CSS 屬性。
- 下面的例子把所有
<p>
元素的背景顏色更改為紅色:$("p").css("background-color","red");
jQuery事件函數(shù)
jQuery 事件處理方法是 jQuery 中的核心函數(shù)。
事件處理程序指的是當(dāng) HTML 中發(fā)生某些事件時所調(diào)用的方法。術(shù)語由事件“觸發(fā)”(或“激發(fā)”)經(jīng)常會被使用。
通常會把 jQuery 代碼放到 <head>
部分的事件處理方法中:
實例:
<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("button").click(function(){
$("p").hide();
});
});
</script>
</head>
<body>
<h2>This is a heading</h2>
<p>This is a paragraph.</p>
<p>This is another paragraph.</p>
<button>Click me</button>
</body>
</html>
jQuery效果
隱藏/顯示
- jQuery hide()演示一個簡單的 jQuery hide() 方法。
- jQuery hide()另一個 hide() 演示。如何隱藏部分文本。
- jQuery toggle()通過 jQuery,您可以使用 toggle() 方法來切換 hide() 和 show() 方法。
語法:
$(selector).hide(speed,callback);
$(selector).show(speed,callback);
$(selector).toggle(speed,callback);
可選的 speed 參數(shù)規(guī)定隱藏/顯示的速度,可以取以下值:"slow"、"fast" 或毫秒。可選的 callback 參數(shù)是hide,show,toggle等方法完成后所執(zhí)行的函數(shù)名稱。
淡入淡出
- jQuery fadeIn() 用于淡入已隱藏的元素。
- jQuery fadeOut() 方法用于淡出可見元素。
- jQuery fadeToggle() 方法可以在 fadeIn() 與 fadeOut() 方法之間進行切換。
如果元素已淡出,則 fadeToggle() 會向元素添加淡入效果。
如果元素已淡入,則 fadeToggle() 會向元素添加淡出效果。 - jQuery fadeTo() 方法允許漸變?yōu)榻o定的不透明度(值介于 0 與 1 之間)。
語法:
$(selector).fadeIn(speed,callback);
$(selector).fadeOut(speed,callback);
$(selector).fadeToggle(speed,callback);
$(selector).fadeTo(speed,opacity,callback);
可選的 speed 參數(shù)規(guī)定隱藏/顯示的速度,可以取以下值:"slow"、"fast" 或毫秒。可選的 callback 參數(shù)是hide,show,toggle等方法完成后所執(zhí)行的函數(shù)名稱。fadeTo() 方法中必需的 opacity 參數(shù)將淡入淡出效果設(shè)置為給定的不透明度(值介于 0 與 1 之間)。
滑動
- jQuery slideDown() 方法用于向下滑動元素。
- jQuery slideUp() 方法用于向上滑動元素。
- jQuery slideToggle() 方法可以在 slideDown() 與 slideUp() 方法之間進行切換。
如果元素向下滑動,則 slideToggle() 可向上滑動它們。
如果元素向上滑動,則 slideToggle() 可向下滑動它們。
語法:
$(selector).slideDown(speed,callback);
$(selector).slideUp(speed,callback);
$(selector).slideToggle(speed,callback);
可選的 speed 參數(shù)規(guī)定效果的時長。它可以取以下值:"slow"、"fast" 或毫秒。
可選的 callback 參數(shù)是滑動完成后所執(zhí)行的函數(shù)名稱。
動畫
- jQuery animate() 方法用于創(chuàng)建自定義動畫。
提示:默認地,所有 HTML 元素都有一個靜態(tài)位置,且無法移動。
如需對位置進行操作,要記得首先把元素的 CSS position 屬性設(shè)置為 relative、fixed 或 absolute!
語法:
$(selector).animate({params},speed,callback);
必需的 params 參數(shù)定義形成動畫的 CSS 屬性。
可選的 speed 參數(shù)規(guī)定效果的時長。它可以取以下值:"slow"、"fast" 或毫秒。
可選的 callback 參數(shù)是動畫完成后所執(zhí)行的函數(shù)名稱。
下面的例子演示 animate() 方法的簡單應(yīng)用;它把 <div> 元素移動到左邊,直到 left 屬性等于 250 像素為止:
$("button").click(function(){
$("div").animate({left:'250px'});
});
- jQuery animate() - 操作多個屬性
操作多個屬性
實例:
$("button").click(function(){
$("div").animate({
left:'250px',
opacity:'0.5',
height:'150px',
width:'150px'
});
});
提示:可以用 animate() 方法來操作所有 CSS 屬性嗎?
是的,幾乎可以!不過,需要記住一件重要的事情:當(dāng)使用 animate() 時,必須使用 Camel 標記法書寫所有的屬性名,比如,必須使用 paddingLeft 而不是 padding-left,使用 marginRight 而不是 margin-right,等等。同時,色彩動畫并不包含在核心 jQuery 庫中。
如果需要生成顏色動畫,您需要從 jQuery.com 下載 Color Animations 插件。
- jQuery animate() - 使用相對值
也可以定義相對值(該值相對于元素的當(dāng)前值)。需要在值的前面加上 += 或 -=:
實例:
$("button").click(function(){
$("div").animate({
left:'250px',
height:'+=150px',
width:'+=150px'
});
});
- jQuery animate() - 使用預(yù)定義的值
您甚至可以把屬性的動畫值設(shè)置為 "show"、"hide" 或 "toggle":
實例
$("button").click(function(){
$("div").animate({
height:'toggle'
});
});
- jQuery animate() - 使用隊列功能
默認地,jQuery 提供針對動畫的隊列功能。這意味著如果您在彼此之后編寫多個 animate() 調(diào)用,jQuery 會創(chuàng)建包含這些方法調(diào)用的“內(nèi)部”隊列。然后逐一運行這些 animate 調(diào)用。
實例:
$("button").click(function(){
var div=$("div");
div.animate({height:'300px',opacity:'0.4'},"slow");
div.animate({width:'300px',opacity:'0.8'},"slow");
div.animate({height:'100px',opacity:'0.4'},"slow");
div.animate({width:'100px',opacity:'0.8'},"slow");
});
jQuery 停止動畫
jQuery stop() 方法用于在動畫或效果完成前對它們進行停止。stop() 方法適用于所有 jQuery 效果函數(shù),包括滑動、淡入淡出和自定義動畫。
語法
$(selector).stop(stopAll,goToEnd);
可選的 stopAll 參數(shù)規(guī)定是否應(yīng)該清除動畫隊列。默認是 false,即僅停止活動的動畫,允許任何排入隊列的動畫向后執(zhí)行。
可選的 goToEnd 參數(shù)規(guī)定是否立即完成當(dāng)前動畫。默認是 false。
因此,默認地,stop() 會清除在被選元素上指定的當(dāng)前動畫。
jQuery Callback 函數(shù)
Callback 函數(shù)在當(dāng)前動畫 100% 完成之后執(zhí)行。如果您希望在一個涉及動畫的函數(shù)之后來執(zhí)行語句,請使用 callback 函數(shù)。否則會出錯
jQuery - Chaining
通過 jQuery,您可以把動作/方法鏈接起來。
Chaining 允許我們在一條語句中允許多個 jQuery 方法(在相同的元素上)。
實例:
$("#p1").css("color","red").slideUp(2000).slideDown(2000);
提示:當(dāng)進行鏈接時,代碼行會變得很差。不過,jQuery 在語法上不是很嚴格;您可以按照希望的格式來寫,包含折行和縮進。
$("#p1").css("color","red")
.slideUp(2000)
.slideDown(2000);
jQuery HTML
jQuery DOM 操作:jQuery 中非常重要的部分,就是操作 DOM 的能力。
jQuery 提供一系列與 DOM 相關(guān)的方法,這使訪問和操作元素和屬性變得很容易。
提示:DOM = Document Object Model(文檔對象模型)
DOM 定義訪問 HTML 和 XML 文檔的標準:“W3C 文檔對象模型獨立于平臺和語言的界面,允許程序和腳本動態(tài)訪問和更新文檔的內(nèi)容、結(jié)構(gòu)以及樣式。”
jQuery - 獲得內(nèi)容和屬性
獲得內(nèi)容 - text()、html() 以及 val()
- text() - 設(shè)置或返回所選元素的文本內(nèi)容
- html() - 設(shè)置或返回所選元素的內(nèi)容(包括 HTML 標記)
- val() - 設(shè)置或返回表單字段的值
實例:
$("#btn1").click(function(){
alert("Text: " + $("#test").text());
});
$("#btn2").click(function(){
alert("HTML: " + $("#test").html());
});
$("#btn1").click(function(){
alert("Value: " + $("#test").val());
});
獲取屬性 - attr()
實例:
$("button").click(function(){
alert($("#w3s").attr("href"));
});
jQuery - 設(shè)置內(nèi)容和屬性
設(shè)置內(nèi)容 - text()、html() 以及 val()
我們將使用前一章中的三個相同的方法來設(shè)置內(nèi)容:
- text() - 設(shè)置或返回所選元素的文本內(nèi)容
- html() - 設(shè)置或返回所選元素的內(nèi)容(包括 HTML 標記)
- val() - 設(shè)置或返回表單字段的值
實例:
$("#btn1").click(function(){
$("#test1").text("Hello world!");
});
$("#btn2").click(function(){
$("#test2").html("<b>Hello world!</b>");
});
$("#btn3").click(function(){
$("#test3").val("Dolly Duck");
});
text()、html() 以及 val() 的回調(diào)函數(shù)
回調(diào)函數(shù)由兩個參數(shù):被選元素列表中當(dāng)前元素的下標,以及原始(舊的)值。然后以函數(shù)新值返回您希望使用的字符串。
實例:
$("#btn1").click(function(){
$("#test1").text(function(i,origText){
return "Old text: " + origText + " New text: Hello world!
(index: " + i + ")";
});
});
$("#btn2").click(function(){
$("#test2").html(function(i,origText){
return "Old html: " + origText + " New html: Hello <b>world!</b>
(index: " + i + ")";
});
});
設(shè)置屬性 - attr()
實例:(改變(設(shè)置)鏈接中 href 屬性的值)
$("button").click(function(){
$("#w3s").attr("href","http://www.w3school.com.cn/jquery");
});
attr() 方法也允許您同時設(shè)置多個屬性
實例:(同時設(shè)置 href 和 title 屬性)
$("button").click(function(){
$("#w3s").attr({
"href" : "http://www.w3school.com.cn/jquery",
"title" : "W3School jQuery Tutorial"
});
});
attr() 的回調(diào)函數(shù)
回調(diào)函數(shù)由兩個參數(shù):被選元素列表中當(dāng)前元素的下標,以及原始(舊的)值。然后以函數(shù)新值返回您希望使用的字符串。
實例:(帶有回調(diào)函數(shù)的 attr() 方法)
$("button").click(function(){
$("#w3s").attr("href", function(i,origValue){
return origValue + "/jquery";
});
});
jQuery - 添加元素
添加新的 HTML 內(nèi)容
- append() - 在被選元素的結(jié)尾插入內(nèi)容
- prepend() - 在被選元素的開頭插入內(nèi)容
- after() - 在被選元素之后插入內(nèi)容
- before() - 在被選元素之前插入內(nèi)容
實例:
$("p").append("Some appended text.");
$("p").prepend("Some prepended text.");
$("img").after("Some text after");
$("img").before("Some text before");
append() 和 prepend() 、after() 和 before()方法能夠通過參數(shù)接收無限數(shù)量的新元素。可通過 text/HTML、jQuery 或者 JavaScript/DOM 來創(chuàng)建。、
實例:
function appendText()
{
var txt1="<p>Text.</p>"; // 以 HTML 創(chuàng)建新元素
var txt2=$("<p></p>").text("Text."); // 以 jQuery 創(chuàng)建新元素
var txt3=document.createElement("p"); // 以 DOM 創(chuàng)建新元素
txt3.innerHTML="Text.";
$("p").append(txt1,txt2,txt3); // 追加新元素
}
function afterText()
{
var txt1="<b>I </b>"; // 以 HTML 創(chuàng)建新元素
var txt2=$("<i></i>").text("love "); // 通過 jQuery 創(chuàng)建新元素
var txt3=document.createElement("big"); // 通過 DOM 創(chuàng)建新元素
txt3.innerHTML="jQuery!";
$("img").after(txt1,txt2,txt3); // 在 img 之后插入新元素
}
jQuery - 刪除元素
- remove() - 刪除被選元素(及其子元素)
- empty() - 從被選元素中刪除子元素
實例:
$("#div1").remove();
$("#div1").empty();
- 過濾被刪除的元素
jQuery remove() 方法也可接受一個參數(shù),允許您對被刪元素進行過濾。
該參數(shù)可以是任何 jQuery 選擇器的語法。
下面的例子:
實例:(刪除 class="italic" 的所有<p>
元素)
$("p").remove(".italic");
jQuery - 獲取并設(shè)置 CSS 類
- addClass() - 向被選元素添加一個或多個類
- removeClass() - 從被選元素刪除一個或多個類
- toggleClass() - 對被選元素進行添加/刪除類的切換操作
實例:
.important
{
font-weight:bold;
font-size:xx-large;
}
.blue
{
color:blue;
}
//add單個class
$("button").click(function(){
$("h1,h2,p").addClass("blue");
$("div").addClass("important");
});
//add多個class
$("button").click(function(){
$("#div1").addClass("important blue");
});
//remove class
$("button").click(function(){
$("h1,h2,p").removeClass("blue");
});
//添加/刪除類的切換操作
$("button").click(function(){
$("h1,h2,p").toggleClass("blue");
});
- css() - 設(shè)置或返回樣式屬性
返回 CSS 屬性
語法:css("propertyname");
實例:$("p").css("background-color");
設(shè)置 CSS 屬性
語法:css("propertyname","value");
實例:$("p").css("background-color","yellow");
設(shè)置多個 CSS 屬性
語法:css({"propertyname":"value","propertyname":"value",...});
實例:$("p").css({"background-color":"yellow","font-size":"200%"});
jQuery - 尺寸
width()設(shè)置或返回元素的寬度(不包括內(nèi)邊距、邊框或外邊距)。
height()設(shè)置或返回元素的高度(不包括內(nèi)邊距、邊框或外邊距)
innerWidth()返回元素的寬度(包括內(nèi)邊距)。
innerHeight()返回元素的高度(包括內(nèi)邊距)
outerWidth()返回元素的寬度(包括內(nèi)邊距和邊框)
outerHeight()返回元素的高度(包括內(nèi)邊距和邊框)
outerWidth(true) 返回元素的寬度(包括內(nèi)邊距、邊框和外邊距)
outerHeight(true) 返回元素的高度(包括內(nèi)邊距、邊框和外邊距)
更多實例
//返回文檔(HTML 文檔)和窗口(瀏覽器視口)的寬度和高度
$(document).width();
$(document).height();
$(window).width();
$(window).height()
//設(shè)置指定的`<div>`元素的寬度和高度
$("#div1").width(500).height(500);
jQuery 遍歷
jQuery 遍歷,意為“移動”,用于根據(jù)其相對于其他元素的關(guān)系來“查找”(或選取)HTML 元素。以某項選擇開始,并沿著這個選擇移動,直到抵達您期望的元素為止。
通過 jQuery 遍歷,您能夠從被選(當(dāng)前的)元素開始,輕松地在家族樹中向上移動(祖先),向下移動(子孫),水平移動(同胞)。這種移動被稱為對 DOM 進行遍歷。
遍歷方法中最大的種類是樹遍歷(tree-traversal)。
jQuery 遍歷 - 祖先
向上遍歷 DOM 樹
parent()
返回被選元素的直接父元素。該方法只會向上一級對 DOM 樹進行遍歷。
實例:
$(document).ready(function(){
$("span").parent();
});
parents()
返回被選元素的所有祖先元素,它一路向上直到文檔的根元素 (<html>
)。
實例:(返回所有 <span>
元素的所有祖先,并且它是 <ul>
元素)
$(document).ready(function(){
$("span").parents("ul");
});
parentsUntil()
返回介于兩個給定元素之間的所有祖先元素。
實例:(返回介于 <span>
與 <div>
元素之間的所有祖先元素)
$(document).ready(function(){
$("span").parentsUntil("div");
});
jQuery 遍歷 - 后代
向下遍歷 DOM 樹
children()
返回被選元素的所有直接子元素。該方法只會向下一級對 DOM 樹進行遍歷。
實例:
$(document).ready(function(){
$("div").children();
});
實例:(例子返回類名為 "1" 的所有 <p>
元素,并且它們是 <div>
的直接子元素)
$(document).ready(function(){
$("div").children("p.1");
});
find()
返回被選元素的后代元素,一路向下直到最后一個后代。
實例:
$(document).ready(function(){
$("div").find("span");
});
實例:(返回 <div>
的所有后代)
$(document).ready(function(){
$("div").find("*");
});
jQuery 遍歷 - 同胞
在 DOM 樹中水平遍歷
siblings()
返回被選元素的所有同胞元素。
實例:
$(document).ready(function(){
$("h2").siblings();
});
實例:(返回屬于 <h2>
的同胞元素的所有 <p>
元素)
$(document).ready(function(){
$("h2").siblings("p");
});
next()
返回被選元素的下一個同胞元素。該方法只返回一個元素。
實例:
$(document).ready(function(){
$("h2").next();
});
nextAll()
返回被選元素的所有跟隨的同胞元素。
實例:
$(document).ready(function(){
$("h2").nextAll();
});
nextUntil()
返回介于兩個給定參數(shù)之間的所有跟隨的同胞元素。
實例:(返回介于 <h2>
與 <h6>
元素之間的所有同胞元素)
$(document).ready(function(){
$("h2").nextUntil("h6");
});
prev()
返回被選元素的前一個同胞元素。該方法只返回一個元素。類比于next()
prevAll()
返回被選元素的所有前面的同胞元素。類比于nextAll()
prevUntil()
返回介于兩個給定參數(shù)之間的所有前面的同胞元素。類比于nextUntil()
jQuery 遍歷 - 過濾
縮寫(小)搜索元素的范圍
jQuery first()
返回被選元素的首個元素。
實例:(選取首個 <div>
元素內(nèi)部的第一個 <p>
元素)
$(document).ready(function(){
$("div p").first();
});
jQuery last()
返回被選元素的最后一個元素。
實例:(選擇最后一個 <div>
元素中的最后一個 <p>
元素)
$(document).ready(function(){
$("div p").last();
});
jQuery eq()
返回被選元素中帶有指定索引號的元素。
索引號從 0 開始,因此首個元素的索引號是 0 而不是 1。
實例:(選取第二個 <p>
元素(索引號 1))
$(document).ready(function(){
$("p").eq(1);
});
jQuery filter() 方法
允許您規(guī)定一個標準。不匹配這個標準的元素會被從集合中刪除,匹配的元素會被返回。
實例:(返回帶有類名 "intro" 的所有 <p>
元素)
$(document).ready(function(){
$("p").filter(".intro");
});
jQuery not() 方法
返回不匹配標準的所有元素。提示:not() 方法與 filter() 相反。
實例:(返回不帶有類名 "intro" 的所有 <p>
元素)
$(document).ready(function(){
$("p").not(".intro");
});
jQuery - AJAX
AJAX = 異步 JavaScript 和 XML(Asynchronous JavaScript and XML)。
簡短地說,在不重載整個網(wǎng)頁的情況下,AJAX 通過后臺加載數(shù)據(jù),并在網(wǎng)頁上進行顯示。
關(guān)于 jQuery 與 AJAX
jQuery 提供多個與 AJAX 有關(guān)的方法。
通過 jQuery AJAX 方法,您能夠使用 HTTP Get 和 HTTP Post 從遠程服務(wù)器上請求文本、HTML、XML 或 JSON - 同時您能夠把這些外部數(shù)據(jù)直接載入網(wǎng)頁的被選元素中。
jQuery - AJAX load() 加載
jQuery load()
jQuery load() 方法是簡單但強大的 AJAX 方法。從服務(wù)器加載數(shù)據(jù),并把返回的數(shù)據(jù)放入被選元素中。
語法:$(selector).load(URL,data,callback);
必需的 URL 參數(shù)規(guī)定您希望加載的 URL。
可選的 data 參數(shù)規(guī)定與請求一同發(fā)送的查詢字符串鍵/值對集合。
可選的 callback 參數(shù)是 load() 方法完成后所執(zhí)行的函數(shù)名稱。
實例:(把文件 "demo_test.txt" 的內(nèi)容加載到指定的 <div>
元素中)
$("#div1").load("demo_test.txt");
實例:(把 "demo_test.txt" 文件中 id="p1" 的元素的內(nèi)容,加載到指定的 <div>
元素中)
$("#div1").load("demo_test.txt #p1");
可選的 callback 參數(shù)規(guī)定當(dāng) load() 方法完成后所要允許的回調(diào)函數(shù)。回調(diào)函數(shù)可以設(shè)置不同的參數(shù):
responseTxt - 包含調(diào)用成功時的結(jié)果內(nèi)容
statusTXT - 包含調(diào)用的狀態(tài)
xhr - 包含 XMLHttpRequest 對象
實例:
$("button").click(function(){
$("#div1").load("demo_test.txt",function(responseTxt,statusTxt,xhr){
if(statusTxt=="success")
alert("外部內(nèi)容加載成功!");
if(statusTxt=="error")
alert("Error: "+xhr.status+": "+xhr.statusText);
});
});
jQuery - AJAX get() 和 post() 方法
HTTP 請求:GET vs. POST
兩種在客戶端和服務(wù)器端進行請求-響應(yīng)的常用方法是:GET 和 POST。
- GET - 從指定的資源請求數(shù)據(jù)
- POST - 向指定的資源提交要處理的數(shù)據(jù)
- GET 基本上用于從服務(wù)器獲得(取回)數(shù)據(jù)。注釋:GET 方法可能返回緩存數(shù)據(jù)。
- POST 也可用于從服務(wù)器獲取數(shù)據(jù)。不過,POST 方法不會緩存數(shù)據(jù),并且常用于連同請求一起發(fā)送數(shù)據(jù)。
jQuery $.get() 方法
通過 HTTP GET 請求從服務(wù)器上請求數(shù)據(jù)。
語法:$.get(URL,callback);
必需的 URL 參數(shù)規(guī)定您希望請求的 URL。
可選的 callback 參數(shù)是請求成功后所執(zhí)行的函數(shù)名。
實例:(使用 $.get() 方法從服務(wù)器上的一個文件中取回數(shù)據(jù))
$("button").click(function(){
$.get("demo_test.asp",function(data,status){
alert("Data: " + data + "\nStatus: " + status);
});
});
jQuery $.post() 方法
通過 HTTP POST 請求從服務(wù)器上請求數(shù)據(jù)。
語法:$.post(URL,data,callback);
必需的 URL 參數(shù)規(guī)定您希望請求的 URL。
可選的 data 參數(shù)規(guī)定連同請求發(fā)送的數(shù)據(jù)。
可選的 callback 參數(shù)是請求成功后所執(zhí)行的函數(shù)名。
實例:(使用 $.post() 連同請求一起發(fā)送數(shù)據(jù))
$("button").click(function(){
$.post("demo_test_post.asp",
{
name:"Donald Duck",
city:"Duckburg"
},
function(data,status){
alert("Data: " + data + "\nStatus: " + status);
});
});
jQuery - noConflict() 方法
jQuery 和其他 JavaScript 框架
正如您已經(jīng)了解到的,jQuery 使用 $ 符號作為 jQuery 的簡寫。
如果其他 JavaScript 框架也使用 $ 符號作為簡寫怎么辦?
其他一些 JavaScript 框架包括:MooTools、Backbone、Sammy、Cappuccino、Knockout、JavaScript MVC、Google Web Toolkit、Google Closure、Ember、Batman 以及 Ext JS。
其中某些框架也使用 $ 符號作為簡寫(就像 jQuery),如果您在用的兩種不同的框架正在使用相同的簡寫符號,有可能導(dǎo)致腳本停止運行。
jQuery 的團隊考慮到了這個問題,并實現(xiàn)了 noConflict() 方法。
jQuery noConflict() 方法
noConflict() 方法會釋放會 $ 標識符的控制,這樣其他腳本就可以使用它了。
實例,當(dāng)然,您仍然可以通過全名替代簡寫的方式來使用 jQuery:
$.noConflict();
jQuery(document).ready(function(){
jQuery("button").click(function(){
jQuery("p").text("jQuery 仍在運行!");
});
});
您也可以創(chuàng)建自己的簡寫。noConflict() 可返回對 jQuery的引用,您可以把它存入變量,以供稍后使用。請看這個例子:
var jq = $.noConflict();
jq(document).ready(function(){
jq("button").click(function(){
jq("p").text("jQuery 仍在運行!");
});
});
實例,如果你的 jQuery 代碼塊使用 $ 簡寫,并且您不愿意改變這個快捷方式,那么您可以把 $ 符號作為變量傳遞給 ready 方法。這樣就可以在函數(shù)內(nèi)使用 $ 符號了 - 而在函數(shù)外,依舊不得不使用 "jQuery":
$.noConflict();
jQuery(document).ready(function($){
$("button").click(function(){
$("p").text("jQuery 仍在運行!");
});
});