jQuery教程
- 向頁面添加jQuery庫
<head>
<script src="jquery.js"></script>
</head>
jQuery庫在I:/project/html/first1中
- jQuery語法
$(selector).action();
美元符號定義jQuery
選擇符用于查詢和查找HTML元素
action()執(zhí)行操作
實例
$(this).hide()-隱藏當前元素
$("P").hide()-隱藏所有段落
$(".test").hide() - 隱藏所有 class="test" 的所有元素
$("#test").hide() - 隱藏所有 id="test" 的元素
- 文檔就緒函數(shù)
$(document).ready(function(){
---jQuery functions go here---
})
所有的jQuery函數(shù)都位于這個函數(shù)中逊抡,防止文檔在完全加載(就緒)之前運行 jQuery 代碼锐极。
- jQuery 選擇器
a.jQuery 元素選擇器
$("p")選擇<p>元素
$("p.intro")選取所有 class="intro" 的 <p> 元素
$("p#demo")選取所有 id="demo" 的 <p> 元素
b. jQuery CSS選擇器
$("p").css("background-color","red")
c. 更多選擇器實例
$(this) 當前 HTML 元素
$("p") 所有 <p> 元素
$("p.intro") 所有 class="intro" 的 <p> 元素
$(".intro") 所有 class="intro" 的元素
$("#intro") id="intro" 的元素
$("ul li:first") 每個<\ul>的第一個<\li>元素
$("[href$='.jpg']") 所有帶有以 ".jpg" 結(jié)尾的屬性值的 href 屬性
$("div#intro .head") id="intro" 的 <div> 元素中的所有 class="head" 的元素
- jQuery 事件
$(selector).click(function) 觸發(fā)或?qū)⒑瘮?shù)綁定到被選元素的點擊事件
$(selector).dblclick(function) 觸發(fā)或?qū)⒑瘮?shù)綁定到被選元素的雙擊事件
$(selector).focus(function) 觸發(fā)或?qū)⒑瘮?shù)綁定到被選元素的獲得焦點事件(?)
$(selector).mouseover(function) 觸發(fā)或?qū)⒑瘮?shù)綁定到被選元素的鼠標懸停事件
jQuery 效果
1.隱藏/顯示
-
hide()
和shou()
$(selector).hide/show(speed,callback);
speed參數(shù)規(guī)定隱藏/顯示的速度委造,可以取以下值:"slow"、"fast" (帶引號)或毫秒
callback 參數(shù)是隱藏或顯示完成后所執(zhí)行的函數(shù)名稱蓬蝶。
toggle()
$("button").click(function(){
$("p").toggle();
});
用于切換hide()
和show()
傻工,也有speed和callback兩個參數(shù)谭贪。
2.淡入淡出
-
fadeIn()
從無到有 -
fadeOut()
從有到無 -
fadeToggle()
有-無-有 -
fadeTo()
淡出至原圖的0-1倍
以上均接受speed和callback參數(shù),除此之外在兩個參數(shù)中間fadeTo還有個opacity參數(shù)(透明度)植酥。
3.滑動
-
slideDown()
向下滑動顯示 -
slideUp()
向上滑動消失 -
slideToggle()
先向下顯示再向上消失
4.動畫 animate()
默認情況下,所有 HTML 元素的位置都是靜態(tài)的并且無法移動弦牡。如需對位置進行操作友驮,記得首先把元素的 CSS position 屬性設置為 relative、fixed 或 absolute驾锰。
- 方法
$(selector).animate({params},speed,callback);
$("button").click(function(){
$("div").animate({left:'250px'});
});
必需的params參數(shù)定義形成動畫的CSS屬性卸留。
- 操作多個屬性
$("button").click(function(){
$("div").animate({
left:'250px',
opacity:'0.5',
height:'150px',
width:'150px'
});
});
當使用 animate() 時,必須使用 Camel 標記法書寫所有的屬性名稻据,比如艾猜,必須使用 paddingLeft 而不是 padding-left,使用 marginRight 而不是 margin-right捻悯,等等匆赃。
如果需要生成顏色動畫,您需要從 jQuery.com 下載 Color Animations 插件今缚。
- 使用相對值
$("button").click(function(){
$("div").animate({
left:'250px',
height:'+=150px',
width:'+=150px'
});
});
- 使用預定義的值
$("button").click(function(){
$("div").animate({
height:'toggle'
});
});
- 使用隊列功能
例一
$("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");
});
...
<button>開始動畫</button>
例二
$("button").click(function(){
var div=$("div");
div.animate({left:'100px'},"slow");
div.animate({fontSize:'3em'},"slow");
});
5. stop()
用于停止動畫或效果算柳,在它們完成之前。適用于所有 jQuery 效果函數(shù)姓言,包括滑動瞬项、淡入淡出和自定義動畫。
$(selector).stop(stopAll,goToEnd);
可選的 stopAll 參數(shù)規(guī)定是否應該清除動畫隊列何荚。默認是 false囱淋,即僅停止活動的動畫,允許任何排入隊列的動畫向后執(zhí)行餐塘。
可選的 goToEnd 參數(shù)規(guī)定是否立即完成當前動畫妥衣。默認是 false。
6. callback
Callback 函數(shù)在當前動畫 100% 完成之后執(zhí)行。
$("p").hide(1000,function(){
alert("The paragraph is now hidden");
});
7.chaining
允許在相同的元素上運行多條 jQuery 命令税手,一條接著另一條蜂筹。
$("#p1").css("color","red").slideUp(2000).slideDown(2000);
折進縮行不影響執(zhí)行。
jQuery HTML
1.獲取
- 獲取內(nèi)容
-
text()
- 設置或返回所選元素的文本內(nèi)容 -
html()
- 設置或返回所選元素的內(nèi)容(包括 HTML 標記) -
val()
- 設置或返回表單字段的值
$(document).ready(function(){
$("#btn1").click(function(){
alert("Text: " + $("#test").text());
});
$("#btn2").click(function(){
alert("HTML: " + $("#test").html());
});
$("button").click(function(){
alert("Value: " + $("#test").val());
});
});
...
<input type="text" id="test" value="米老鼠">
- 獲取屬性 -
attr()
$("button").click(function(){
alert($("#w3s").attr("href"));
});
2.設置
設置內(nèi)容
.text("")
.html("")
.val("")
text()
芦倒、html()
以及val()
的回調(diào)函數(shù)
a. 兩個參數(shù):被選元素列表中當前元素的下標艺挪,以及原始(舊的)值
b. 以函數(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 + ")";
});
});
- 設置屬性 -
attr()
$("button").click(function(){
$("#w3s").attr("href","http://www.w3school.com.cn/jquery");
});
允許同時設置多個屬性
$("button").click(function(){
$("#w3s").attr({
"href" : "http://www.w3school.com.cn/jquery",
"title" : "W3School jQuery Tutorial"
});
});
-
attr()
的回調(diào)函數(shù)
a. 兩個參數(shù):被選元素列表中當前元素的下標,以及原始(舊的)值
b. 以函數(shù)新值返回希望使用的字符串
3.添加
-
append()
- 在被選元素的結(jié)尾插入內(nèi)容 -
prepend()
- 在被選元素的開頭插入內(nèi)容 -
after()
- 在被選元素之后插入內(nèi)容 -
before()
- 在被選元素之前插入內(nèi)容
4.刪除
-
remove()
- 被選元素及其子元素
remove()
方法也可接受一個參數(shù)兵扬,允許對被刪元素進行過濾 -
empty()
- 刪除被選元素的子元素
5.CSS類
-
addClass()
- 添加 class 屬性
向不同的元素添加 class 屬性
$("button").click(function(){
$("h1,h2,p").addClass("blue");
$("div").addClass("important");
});
規(guī)定多個類
$("button").click(function(){
$("#div1").addClass("important blue");
});
-
removeClass()
- 刪除指定的 class 屬性 -
toggleClass()
- 對被選元素進行添加/刪除類的切換操作
6.css()
- 返回 CSS 屬性
css("propertyname");
- 設置 CSS 屬性
css("propertyname","value");
- 設置多個 CSS 屬性
css({"propertyname":"value","propertyname":"value",...});
7.尺寸
width()
-設置或返回元素的寬度(不包括內(nèi)邊距麻裳、邊框或外邊距)
height()
- 設置或返回元素的高度(不包括內(nèi)邊距、邊框或外邊距)innerWidth()
- 返回元素的寬度(包括內(nèi)邊距)周霉。
innerHeight()
- 返回元素的高度(包括內(nèi)邊距)outerWidth()
- 返回元素的寬度(包括內(nèi)邊距和邊框)
outerHeight()
- 返回元素的高度(包括內(nèi)邊距和邊框)outerWidth(true)
- 返回元素的寬度(包括內(nèi)邊距掂器、邊框和外邊距)
outerHeight(true)
- 返回元素的高度(包括內(nèi)邊距、邊框和外邊距)
jQuery 遍歷
1.祖先
-
parent()
- 返回被選元素的直接父元素 -
parents()
- 返回被選元素的所有祖先元素
可以使用可選參數(shù)來過濾對祖先元素的搜索 -
parentsUntil()
- 返回介于兩個給定元素之間的所有祖先元素(兩端均不包括)
2.后代
-
children()
- 返回被選元素的所有直接子元素
使用可選參數(shù)來過濾對子元素的搜索 -
find()
- 返回被選元素的后代元素俱箱,一路向下直到最后一個后代
3.同胞
-
siblings()
- 返回被選元素的所有同胞元素
可以使用可選參數(shù)來過濾對同胞元素的搜索 -
next()
- 返回被選元素的下一個同胞元素 -
nextAll()
- 返回被選元素的所有跟隨的同胞元素 -
nextUntil()
- 返回介于兩個給定參數(shù)之間的所有跟隨的同胞元素(兩端均不包含)
4.過濾
-
first()
- 返回被選元素的首個元素
$(document).ready(function(){
$("div p").first();
});
選取首個 div 元素內(nèi)部的第一個 p 元素
-
last()
- 返回被選元素的最后一個元素
$(document).ready(function(){
$("div p").last();
});
選擇最后一個 div 元素中的最后一個 p 元素
-
eq()
- 返回被選元素中帶有指定索引號的元素
$(document).ready(function(){
$("p").eq(1);
});
索引號從 0 開始,選取第二個 p 元素(索引號 1)
-
filter()
- 允許規(guī)定一個標準国瓮。不匹配這個標準的元素會被從集合中刪除,匹配的元素會被返回 -
not()
- 返回不匹配標準的所有元素
jQuery AJAX
1.加載 load()
從服務器加載數(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");
也可以把 jQuery 選擇器添加到 URL 參數(shù),如把 "demo_test.txt" 文件中 id="p1" 的元素的內(nèi)容乃摹,加載到指定的 <div> 元素中:
$("#div1").load("demo_test.txt #p1");
callback 參數(shù)規(guī)定當 load() 方法完成后所要允許的回調(diào)函數(shù),接收三個參數(shù)
responseTxt - 包含調(diào)用成功時的結(jié)果內(nèi)容
statusTXT - 包含調(diào)用的狀態(tài)
xhr - 包含 XMLHttpRequest 對象
2.get()和post()
- $.get()
$.get(URL,callback);
必需的 URL 參數(shù)規(guī)定希望請求的 URL
可選的 callback 參數(shù)是請求成功后所執(zhí)行的函數(shù)名
$("button").click(function(){
$.get("demo_test.asp",function(data,status){
alert("Data: " + data + "\nStatus: " + status);
});
});
第一個參數(shù)是希望請求的 URL("demo_test.asp")跟衅。
第二個參數(shù)是回調(diào)函數(shù)孵睬。第一個回調(diào)參數(shù)存有被請求頁面的內(nèi)容,第二個回調(diào)參數(shù)存有請求的狀態(tài)伶跷。
- $.post()
$.post(URL,data,callback);
必需的 URL 參數(shù)規(guī)定您希望請求的 URL
可選的 data 參數(shù)規(guī)定連同請求發(fā)送的數(shù)掰读。
可選的 callback 參數(shù)是請求成功后所執(zhí)行的函數(shù)名
$("button").click(function(){
$.post("demo_test_post.asp",
{
name:"Donald Duck",
city:"Duckburg"
},
function(data,status){
alert("Data: " + data + "\nStatus: " + status);
});
});
第一個參數(shù)是希望請求的 URL ("demo_test_post.asp")。
然后連同請求(name 和 city)一起發(fā)送數(shù)據(jù)叭莫。
"demo_test_post.asp" 中的 ASP 腳本讀取這些參數(shù)蹈集,對它們進行處理,然后返回結(jié)果雇初。
第三個參數(shù)是回調(diào)函數(shù)拢肆。第一個回調(diào)參數(shù)存有被請求頁面的內(nèi)容,而第二個參數(shù)存有請求的狀態(tài)靖诗。
jQuery 雜項
noConflict()
noConflict() 方法會釋放會 $ 標識符的控制郭怪,這樣其他腳本就可以使用它了。
$.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 仍在運行!");
});
});
jQuery 參考手冊
參考手冊
選擇器
事件
效果
文檔操作
屬性操作
CSS操作
AJAX
遍歷
數(shù)據(jù)
DOM元素方法
核心
屬性