JQuery
一.Hello JQuery
JQuery是一個(gè)javascript的框架慌洪,是對(duì)jvascript的一種封裝冈爹。通過(guò)JQuery可以非常方便的操作html的元素
1.jquery.min.js
<script src="http://how2j.cn/study/jquery.min.js"></script>
要使用Jquery需要導(dǎo)入一個(gè)第三方的javascript庫(kù) jquery.min.js
2.理解();和function(){ }兩部分構(gòu)成芝此,合起來(lái)就是
(document).ready(function(){ });也由兩部分組成
("#id")獲取 例 document.write(
(#id)獲取到的是一個(gè)JQuery對(duì)象
4.增加監(jiān)聽(tīng)器
("#b1").click();和function(){alert("點(diǎn)擊了按鈕");}
b1按鈕的點(diǎn)擊事件 彈出對(duì)話框的函數(shù)
5.隱藏與顯示
("#d").show();
通過(guò)$("#d")拿到div對(duì)象后颠放,直接調(diào)用hide()和show()方法碰凶,即可實(shí)現(xiàn)隱藏和顯示欲低。
二.常見(jiàn)方法
1.取值 通過(guò)JQuery對(duì)象的val()方法取值
("#d1").html() 通過(guò)html()獲取元素內(nèi)容扫步,如果有子元素匈子,保留標(biāo)簽
3.獲取元素內(nèi)容虎敦,如果有子元素其徙,不包含元素標(biāo)簽
$("#d1").text() 通過(guò)text()獲取元素內(nèi)容唾那,如果有子元素,不包含標(biāo)簽
三.CSS
1.增加class
通過(guò)addClass()增加一個(gè)樣式中的class
("#d").removeClass("pink");
3.切換class
通過(guò)toggleClass() 切換一個(gè)樣式中的class 切換指存在就刪除河哑,不存在就添加
("#d1").css("background-color","pink"); 設(shè)置單一樣式
$("#d2").css({"background-color":"pink","color":"green"}); 設(shè)置多種樣式
參數(shù)是{}包含的屬性值對(duì)佳吞,屬性值對(duì)之間用逗號(hào)(,)分割容达。屬性值之間用冒號(hào)(:)分割,屬性和值都需要用引號(hào)“”
四.選擇器
1.元素
("div").addClass("pink");
2.id
("#d1").addClass("pink");
3.類(lèi)
(".d").addClass("pink");
4.層級(jí)
("div#d3 span").addClass("pink");
5.最先最后
(selector:last) 滿足選擇器條件的最后一個(gè)元素
("div:last").addClass("pink");
6.奇偶
(selector:even) 滿足選擇器條件的偶數(shù)元素
(因?yàn)槭腔愕模缘谝慌诺南聵?biāo)其實(shí)是0(是偶數(shù)))
("div:even").toggleClass("green");
7.可見(jiàn)性
(selector:visible)滿足選擇器條件的可見(jiàn)的元素
注意:div:visible和div:visible(有空格)是不同的意思
div:visible表示選中個(gè)可見(jiàn)的div div :visible(有空格) 表示選中div下可見(jiàn)的元素
("div:hidden").show();
8.屬性
(selector[attribute=value]) 滿足選擇器條件的屬性等于value的元素
(selector[attribute^=value]) 滿足選擇器條件的屬性以value開(kāi)頭的元素
=value]) 滿足選擇器條件的屬性以value結(jié)尾的元素
$(selector[attribute*=value]) 滿足選擇器條件的屬性包含value的元素
("div[id='pink']").toggleClass("border"); 給id=pink的div切換邊框
("div[id^='p']").toggleClass("border"); 給有id以p開(kāi)頭的div切換邊框
='k']").toggleClass("border"); 給有id以k結(jié)尾的div切換邊框
$("div[id*='ee']").toggleClass("border"); 給有id包含ee的div切換邊框
9.表單對(duì)象
表單對(duì)象選擇器指的是選中form下出現(xiàn)的輸入元素
:input 會(huì)選擇所有的輸入元素,不僅僅是input標(biāo)簽開(kāi)始的那些兜辞,還包括textarea逸吵,select扫皱,button
:button 會(huì)選擇type=button的input元素和button元素
:radio 會(huì)選擇單選框
:checkbox會(huì)選擇復(fù)選框
:text 會(huì)選擇文本框啸罢,但不會(huì)選擇文本域
:submit 會(huì)選擇提交按鈕
:image 會(huì)選擇圖片型提交按鈕
:reset會(huì)選擇重置按鈕
(".b").click(function(){
var value = ("td[rowspan!=13] "+value).toggle(500); }); });
注意:$("td[rowspan!=13] 后面有一個(gè)空格扰才,表示層級(jí)選擇器衩匣,
意思是獲取 滿足rowspan屬性的屬性值不為13的td元素下的所有元素
如果沒(méi)有出錯(cuò)琅捏,toggle(500)表示在顯示與隱藏之間來(lái)回切換生百,生效時(shí)間是500毫秒
submit會(huì)把<button>元素選中,因?yàn)樵谝恍g覽器中柄延,<button>元素的type默認(rèn)值是submit蚀浆,
所以會(huì)選中它
10.表單對(duì)象元素
:enabled 會(huì)選擇可用的輸入元素 注:輸入元素的默認(rèn)狀態(tài)都是可用
:disabled會(huì)選擇不可用的輸入元素
:checked會(huì)選擇被選中的單選框和復(fù)選框 注:checked在部分瀏覽器上(火狐,chrome)也可以選中selected的option
:selected會(huì)選擇被選中的option元素
11.當(dāng)前元素
在監(jiān)聽(tīng)函數(shù)中使用(function() {
(this).hide(); }); });
五.篩選器
1.第一個(gè) 最后一個(gè) 第幾個(gè)
首先通過(guò) ("div").first().toggleClass("pink"); 切換第1個(gè)div背景色
("div").eq(4).toggleClass("pink"); 切換第5個(gè)div背景色
2.父 祖先
parent() 選取最近的一個(gè)父元素
parents() 選取所有的祖先元素
("#currentDiv").parents().toggleClass("b"); 改變parents()的邊框
3.兒子 后代
children():篩選出兒子元素(緊挨著的子元素)
find(selector):篩選出后代元素 注:find()必須使用參數(shù)selector
("#currentDiv").find("div").toggleClass("b");
4.同級(jí)
sibings():同級(jí)(同胞)元素
$("#currentDiv").siblings().toggleClass("b");
六.屬性
1.獲取
通過(guò)attr()獲取一個(gè)元素的屬性
<h1 id="h" align="center" game="LOL">居中標(biāo)題</h1>
("#h").attr("game") 獲取自定義屬性 game
2.修改
通過(guò)attr(attr,value)修改屬性
("#h").removeAttr("align"); 刪除align屬性
4.prop與attr的區(qū)別
("#c").prop("game") 獲取屬性值結(jié)果為undefined
("#c").prop("checked") 當(dāng)選中屬性時(shí)昭躺,獲取值true忌锯,當(dāng)未選中屬性時(shí),獲取值false
<input type="checkbox" id="c" game="LOL" checked="checked">
與prop一樣attr也可以用來(lái)獲取與設(shè)置元素的屬性窍仰。區(qū)別在于汉规,對(duì)于自定屬性和選中屬性的處理。
選中屬性指的是checked驹吮,selected這兩種屬性针史。1.對(duì)于自定義 屬性attr能夠獲取,prop不能獲取
2.對(duì)于選中屬性:attr只能獲取初始值碟狞,無(wú)論是否變化啄枕,prop能夠訪問(wèn)變化后的值,并且以true|false的
布爾型返回族沃,所以在訪問(wèn)表單對(duì)象屬性的時(shí)候频祝,應(yīng)該采用prop而非attr.
七.效果
1.顯示 隱藏 切換
顯示 隱藏 切換 分別通過(guò)show(),hide(),toggle()實(shí)現(xiàn)泌参,也可以加上毫秒數(shù),表示延時(shí)操作常空,比如show(2000).
("#d").show(); 立即顯示
("#d").show(1000); 延時(shí)顯示
("#d").toggle(1000); 延時(shí)切換
2.向上滑動(dòng) 向下滑動(dòng) 滑動(dòng)切換
向上滑動(dòng) 向下滑動(dòng) 滑動(dòng)切換 分別通過(guò)slideUp(),slideDown(),slideToggle()實(shí)現(xiàn)沽一,也可以加上毫秒數(shù),表示延時(shí)操作漓糙,比如slideUp(2000).
("#d").slideDown(); 向下滑動(dòng)
("#d").slideUp(2000); 延時(shí)向上滑動(dòng)
("#d").slideToggle(2000); 延時(shí)滑動(dòng)切換
3.淡入 淡出 淡入淡出切換 指定淡入程度
淡入 淡出 淡入淡出切換 指定淡入程度 分別通過(guò)fadeIn(),fadeOut(),fadeToggle() fadeTo(實(shí)現(xiàn))
也可以加上毫秒數(shù)铣缠,表示延時(shí)操作,比如fadeIn(2000)
fadeTo跟的參數(shù)是0-1之間的小數(shù).0表示不淡入昆禽,1表示全部淡入
("#d").fadeOut(); 淡入
("#d").fadeIn(2000); 延時(shí)淡出
("#d").fadeToggle(2000); 延時(shí)滑淡入淡出切換
$("#d").fadeTo("slow",0.2); fadeTo
4.自定義動(dòng)畫(huà)效果
通過(guò)animate可以實(shí)現(xiàn)動(dòng)畫(huà)效果,animate()第一個(gè)參數(shù)為css樣式醉鳖,animate()第二個(gè)參數(shù)為延時(shí)毫秒
注:默認(rèn)情況下捡硅,html中的元素都是固定的,并且無(wú)法改變位置的盗棵,為了使用animate()自定義動(dòng)畫(huà)動(dòng)畫(huà)效果壮韭,需要通過(guò)css把元素的position設(shè)置為relative,absolute或者fixed
div.animate({left:'100px'},2000); 向右移動(dòng)100px
div.animate({left:'0px',top:'50px',height:'50px'},2000); 向左下移動(dòng)50px纹因,同時(shí)高度變小
5.回調(diào)函數(shù)
效果方法都提供對(duì)回調(diào)函數(shù)callback()的支持,只需要在調(diào)用效果方法的最后一個(gè)參數(shù)傳入一個(gè)function泰涂,當(dāng)效果結(jié)束的時(shí)候,就會(huì)調(diào)用該function
div.animate({left:'100px'},2000);
div.animate({left:'0px',top:'50px',height:'50px'},2000,function(){
alert("動(dòng)畫(huà)演示結(jié)束"); });
八.事件
1.加載
頁(yè)面加載有兩種方式表示
第一種:(); 圖片加載用load()函數(shù)
(function(){
("#b").click(function(){}); 單擊事件
(function(){
("#"+selector+"Action").css("background-color","green");
("#"+selector+"Key").html(e.which);
(this).val());
clearTimer= setTimeout(clear,4000);
});
4.鼠標(biāo)
mousedown 表示鼠標(biāo)按下
mouseup 表示鼠標(biāo)彈起
mousemove 表示鼠標(biāo)進(jìn)入 mouseenter 表示鼠標(biāo)進(jìn)入 mouseover表示鼠標(biāo)進(jìn)入
mouseleave表示鼠標(biāo)離開(kāi) mouseout表示鼠標(biāo)離開(kāi)
進(jìn)入事件有3個(gè) mousemove mouseenter mouseover
mousemove:當(dāng)鼠標(biāo)進(jìn)入元素,每動(dòng)一下就會(huì)被調(diào)用
mouseenter :當(dāng)鼠標(biāo)進(jìn)入元素淌实,調(diào)用一下冻辩,在其中移動(dòng)猖腕,不調(diào)用 ,鼠標(biāo)經(jīng)過(guò)其子元素不會(huì)被調(diào)用
mouseover:當(dāng)鼠標(biāo)進(jìn)入元素恨闪,調(diào)用一下倘感,在其中移動(dòng),不調(diào)用 咙咽, 鼠標(biāo)經(jīng)過(guò)其子元素會(huì)被調(diào)用
mouseleave 和 mouseout的區(qū)別
mouseleave: 當(dāng)鼠標(biāo)經(jīng)過(guò)其子元素不會(huì)被調(diào)用
mouseout:當(dāng)鼠標(biāo)經(jīng)過(guò)其子元素會(huì)被調(diào)用
("input").focus(function(){}); 獲取了焦點(diǎn)
("#input1").change(function(){ });
7.提交
submit() 提交form表單時(shí)觸發(fā)的函數(shù)
("selector").on("event",function);
("#b").click(function(){});
9.觸發(fā)事件
("#b").on("dblclick",function(){
("#b").trigger("dblclick"); });
九.AJAX
1.提交AJAX請(qǐng)求
("#name").keyup(function(){
(this).val()},
success: function(result){
.ajax采用參數(shù)集的方式{param1,param2炊昆,param3}不同的參數(shù)之間用桨吊,隔開(kāi)
第一個(gè)參數(shù) url:表示訪問(wèn)的page頁(yè)面 //只有第一個(gè)參數(shù)是必須的,其他參數(shù)都是可選
第二個(gè)參數(shù)data:表示提交的參數(shù)
第三個(gè)參數(shù)success:function(){} 表示服務(wù)器成功返回后對(duì)應(yīng)的響應(yīng)函數(shù)
2.使用get方式提交ajax
.ajax的簡(jiǎn)化版凤巨,專(zhuān)門(mén)用于發(fā)送GET請(qǐng)求
("#name").keyup(function(){
(this).val()}, //提交的數(shù)據(jù)
function(result){ //響應(yīng)參數(shù)
.get---->
("#id").load(page,[data]);
id: 用于顯示AJAX服務(wù)端文本的元素Id
page: 服務(wù)端頁(yè)面
data: 提交的數(shù)據(jù)视乐,可選。 在本例中敢茁,直接在page里加上了參數(shù)列表
("#name").keyup(function(){
var page = "http://how2j.cn/study/checkName.jsp?name="+("#checkResult").load(page);
});
});
5.格式化form下的輸入數(shù)據(jù)
serialize(): 格式化form下的輸入數(shù)據(jù)佑淀,把輸入數(shù)據(jù)格式化成字符串
var data = $("#form").serialize(); //name=sad&age=sd&mobile=ds
name屬性值=輸入值&age屬性值=輸入值&mobile屬性值=輸入值
十.數(shù)組操作
1.遍歷
.each( a, function(i, n){
document.write( "元素[" + i + "] : " + n + "
" );
})
document.close();
2.去掉重復(fù)
.unique(a);
3.是否存在.inArray 返回元素在數(shù)組中的位置 ,如果不存在返回-1
$.inArray(9,a) //返回元素9在數(shù)組a中的位置
十一.字符串操作
1.去除首尾空白 $.trim() 去除首尾空白
十二.JSON
1.將JSON格式的字符串逢倍,轉(zhuǎn)換為JSON對(duì)象
var s1= "{"name":"蓋倫","hp":616}"
var gareen = $.parseJSON(s1);
十三.對(duì)象轉(zhuǎn)換
已使用大量的JQuery對(duì)象的方法捧颅,比如show()、toggle()较雕,而原生DOM對(duì)象不具備這些方法
同樣的DOM對(duì)象也具備JQuery對(duì)象所沒(méi)有的屬性和方法碉哑,比如checkd屬性
在某些場(chǎng)景下,需要對(duì)JQuery對(duì)象和DOM節(jié)點(diǎn)對(duì)象進(jìn)行互相轉(zhuǎn)換
1.JQuery轉(zhuǎn)DOM
通過(guò)get(0)或者[0] 把JQuery對(duì)象轉(zhuǎn)為DOM對(duì)象
var div= ("#d"); div為JQuery對(duì)象
var d = div.get(0); d為DOM對(duì)象
2.DOM轉(zhuǎn)JQuery
通過(guò)(div); d為JQuery對(duì)象