jQuery是一個輕量級的JS庫,是一個被封裝好的JS文件,提供了更爲簡便的元素操做方式,jQuery封裝了DOM。css
引入jQuery文件html
<scrtipt src='jquery-1.11.3.js'> </script>jquery
注意:引入必須放在其餘jQuery操做以前。數組
jQuery對象是由jQuery對頁面元素進行封裝後的一種體現app
jQuery中所提供的全部操做都只針對jQuery對象,其餘對象(DOM)沒法使用ide
想要獲取jQuery對象,則必須使用工廠函數$()函數
在$()中容許傳遞一個選擇器/DOM對象做爲參數,$()可以將選擇器和DOM對象所有封裝成jQuery對象再進行返回動畫
例子:this
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>jQuery演示</title> </head> <body> <div id="main"> id是mian的div元素 </div> <button onclick="bClick()">獲取元素</button> <script src="jquery-1.11.3.js"></script> <script> function bClick() { //經過jquery選擇器獲取id='main'的元素 var m = $("#main"); //設置元素的內容 m.html('動態設置的值'); console.log(m) } </script> </body> </html>
DOM對象和jQuery對象之間的轉換spa
DOM對象不能使用jQuery提供的操做,反之一樣。
一、將DOM對象轉換爲jQuery對象
語法:var 變量 = $(DOM對象);
注意:全部的jQuery對象在起名的時候,最好在變量前加$,主要用於和DOM對象的區分
例:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div id="main"> 這是div元素 </div> <button onclick="bClick()">DOM - jQuery</button> <script src="jquery-1.11.3.js"></script> <script> function bClick() { // 經過DOM的操做,獲得id爲main的元素 var main = document.getElementById('main'); // 再將其轉換爲jQuery對象 var $main = $(main); $main.html('轉換爲JQ對象成功!') } </script> </body> </html>
二、將jquery對象轉換爲DOM對象
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div id="main"> 這是div元素 </div> <button onclick="JQtoDom()">jQuery-DOM</button> <script src="jquery-1.11.3.js"></script> <script> function JQtoDom() { // 使用jquery獲得id爲main的元素 var $main = $("#main"); // 再將其轉換爲DOM對象 // var m = $main[0]; var m = $main.get(0); m.innerHTML = '轉換爲DOM對象成功!' } </script> </body> </html>
獲取頁面上的元素們,返回值都是由jQuery對象所組成的數組
語法:$("選擇器")
一、ID選擇器
$("#id");
返回:返回頁面中指定ID值的元素
二、類選擇器
$(".className")
返回:頁面中指定className的全部元素
三、元素選擇器
$("element")
返回:頁面中指定標記的全部元素
四、羣組選擇器 / 複合選擇器
$("selector1,selector2,...")
返回:返回知足函數內全部選擇器的函數們
一、$("selector1 selector2")
後代選擇器
二、$("selector1>selector2")
子代選擇器
三、$("selector1+selector2")
名稱:相鄰兄弟選擇器
做用:匹配牢牢跟在selector1後面且知足selector2選擇器的元素
例:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div id="main"> <p id="p1">這是id爲p1的元素</p> <p>這是普通元素</p> <p>這是普通元素</p> <p>這是普通元素</p> <p>這是普通元素</p> </div> <button onclick="bNB()">相鄰兄弟選擇器</button> <script src="jquery-1.11.3.js"></script> <script> function bNB() { $("#p1+p").css('background', 'yellow'); } </script> </body> </html>
四、$("selector1~selector2")
名稱:通用兄弟選擇器
做用:匹配selector1後面全部知足selector2選擇器的元素
例:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div id="main"> <p id="p1">這是id爲p1的元素</p> <p>這是普通元素</p> <p>這是普通元素</p> <p>這是普通元素</p> <p>這是普通元素</p> </div> <button onclick="bNB()">通用兄弟選擇器</button> <script src="jquery-1.11.3.js"></script> <script> function bNB() { $("#p1~p").css('color', 'red'); } </script> </body> </html>
過濾選擇器一般都會配合着其餘的選擇器一塊兒使用
一、:first
只匹配一組元素中的第一個元素
$("p:first")
二、:last
只匹配一組元素中的最後一個元素
三、:not("selector")
在一組元素中,將知足selector選擇器的元素排除出去
四、:odd
匹配 偶數行 元素(奇數下標)
五、:even
匹配 奇數行 元素(偶數下標)
六、:eq(index) -- equals
匹配 下標等於 index 的元素
七、:gt(index)
匹配 下標大於 index 的元素
八、:lt(index)
匹配 下標小於 index 的元素
依託於html元素的屬性來進行元素過濾的
一、[attribute]
做用:匹配包含指定屬性的元素
ex:
div[id]:匹配具有id屬性的div元素
二、[attribute=value]
做用:匹配attribute屬性值爲value的元素
ex:
input[type=text]
input[type=password]
三、[attribute!=value]
做用:匹配attribute屬性值不是value的元素
四、[attribute^=value]
做用:匹配attribute屬性值是以value字符開頭的元素
ex:
p[class^=col]
五、[attribute$=value]
做用:匹配attribute屬性值是以value字符結尾的元素
六、[attribute*=value]
做用:匹配attribute屬性值中包含value字符的元素
一、:first-child
匹配屬於其父元素中的首個子元素
二、:last-child
匹配屬於其父元素中的最後一個子元素
三、:nth-child(n)
匹配屬於其父元素中第n個子元素
四、jQuery操做DOM
基本操做
一、html()
做用:獲取 或 設置 jQuery對象中的html內容
ex:
console.log($("#main").html());
$("#main").html("");
二、text()
做用:獲取 或 設置 jQuery對象中的text內容
三、val()
做用:獲取 或 設置 jQuery對象中的value值(表單控件)
四、屬性操做
attr()
做用:讀取 或 設置jQuery對象的屬性值
ex:
$obj.attr("id");
獲取 $obj 的id屬性值
$obj.attr("id","main");
設置$obj對象的id屬性值爲main
removeAttr("attrName")
刪除jQuery對象的attrName屬性
ex:
$obj.removeAttr("class");
二、樣式操做
一、attr()
$obj.attr("class","redBack");
二、addClass("className")
做用:將className 添加到元素的class值以後
ex:
$obj = $obj.addClass("c1");
$obj = $obj.addClass("c2");
連綴調用:
$obj.addClass("c1").addClass("c2");
三、removeClass("className")
若是無參的話,則清空類選擇器
若是有參數的話,則刪除對應的類選擇器
ex:
$obj.removeClass("c1")
將c1類選擇器從$obj移除出去
$obj.removeClass()
清空$obj的全部類選擇器
四、toggleClass("className")
切換樣式:
元素若是具有className選擇器,則刪除
元素若是沒有className選擇器,則添加
五、css("屬性名")
$obj.css("width");
獲取$obj對象的width屬性值
六、css("屬性名","屬性值")
$obj.css("background-color","yellow");
設置$obj對象的background-color的屬性值爲yellow
七、css(JSON對象)
JSON對象:
是一種約束了格式的對象表現形式
JSON:JavaScript Object Notation
JSON對象的表示方式:
一、JSON對象必須使用{}括起來
二、使用鍵值對的方式來聲明數據(表示屬性和值)
三、全部的屬性在使用時必須使用""括起來,值若是是字符串的話,也必須使用""括起來
四、屬性和值之間使用:鏈接
五、多對屬性和值之間使用 , 隔開
ex:
$obj.css({
"color":"red",
"font-size":"32px",
"float":"left"
});
一、children() / children("selector")
獲取某jQuery對象的全部子元素 或 帶有指定選擇器的子元素
注意:只考慮子代元素,不考慮後代元素
二、next() / next("selector")
獲取某jQuery對象的下一個兄弟元素 / 知足selector的下一個兄弟元素
三、prev() / prev("selector")
獲取某jQuery對象的上一個兄弟元素 / 知足selector的上一個兄弟元素
四、siblings() / siblings(selector)
獲取某jQuery對象的全部兄弟元素 / 知足selector的全部兄弟元素
五、find("selector")
查找知足selector選擇器的全部後代元素
六、parent()
查找某jQuery對象的父元素
語法:$("建立的標記")
ex:
一、建立一對div
var $div = $("<div></div>");
$div.html("動態建立的div");
$div.attr("id","container")
$div.css("color","red");
二、建立一對div
var $div = $("<div id='container' style='color:red;'>動態建立的div</div>");
做用:將建立好的元素插入到網頁中
一、內部插入
做爲元素的子元素插入到網頁中
$obj.append($new);
將$new元素插入到$obj元素中的最後一個子元素位置處(追加)
$obj.prepend($new);
將$new元素插入到$obj元素中的第一個子元素位置處
二、外部插入
做爲元素的兄弟元素插入到網頁中
$obj.after($new);
將$new元素做爲$obj的下一個兄弟元素插入進來
$obj.before($new);
將$new元素做爲$obj的上一個兄弟元素插入進來
$obj.remove();
將$obj元素刪除出去
1、頁面加載後的執行
相似於window.onload 但不一樣於 window.onload
jQuery加載後執行的特色:
在DOM樹加載完畢的時候就開始執行
$(document).ready( function(){
//頁面的初始化操做
//DOM樹加載完成後就開始運行
} );
$().ready( function(){
//頁面的初始化操做
//DOM樹加載完成後就開始運行
} );
$( function(){
//頁面的初始化操做
//DOM樹加載完成後就開始運行
} );
二、jQuery的事件綁定
方式1
$obj.bind("事件名稱",事件處理函數);
ex:
$obj.bind("click",function(){
//事件的行爲操做
console.log("... ....");
});
方式2
$obj.事件名稱(function(){
//事件處理函數
});
ex:
$obj.click(function(){
//經過 this 來表示觸發該事件的DOM對象
});
三、事件對象 - event
在綁定事件的時候,容許傳遞 event 參數來表示事件對象
$obj.bind("click",function(event){
//event表示當前事件的事件對象
});
$obj.click(function(event){
//event表示當前事件的事件對象
});
event的使用方式與原生JS事件中的event使用方式一致。
event.stopPropagation() : 阻止事件冒泡
event.offsetX:
event.offsetY:
event.target:獲取事件源
一、基本顯示 / 隱藏
語法:
$obj.show() / $obj.show(執行時間)
$obj.hide() / $obj.hide(執行時間)
二、滑動式顯示 / 隱藏
語法:
顯示:$obj.slideDown() / $obj.slideDown(執行時間)
隱藏:$obj.slideUp() / $obj.slideUp(執行時間)
三、淡入淡出式顯示 / 隱藏
語法:
顯示:$obj.fadeIn() / $obj.fadeIn(執行時間)
隱藏:$obj.fadeOut() / $obj.fadeOut(執行時間)