1.jQuery介紹
jQuery是一個輕量級的JS庫 - 是一個被封裝好的JS檔案,提供了更為簡便的元素操作方式
核心理念:Write Less Do More
jQuery版本:
jQuery 2.x 不再支援IE6.7.8
jQuery 1.11.x
2.使用jQuery1.引入jQuery檔案
<script src="jquery-1.11.3.js"></script>
注意:jQuery檔案的引入操作必須要放在其他jQuery操作之前
3.jQuery對象1.什麼是jQuery對象
jQuery對象是由jQuery對頁面元素進行封裝後的一種展現
jQuery中所提供的所有的操作都隻針對jQuery對象,DOM對象不能用
2.工廠函數 -
$()作用:
1.能夠擷取 jquery對象
2.能夠将DOM對象轉換為 jquery 對象
文法:
$(選擇器/DOM對象);$()能夠将選擇器 和 DOM對象封裝成jQuery對象進行傳回
3.DOM對象 和 jQuery對象之間的轉換
DOM對象:隻能使用DOM提供的操作,不能使用jQuery操作
jQuery對象:隻能使用jQuery操作,不能使用DOM操作
1.将DOM對象轉換為jQuery對象文法:
var 變量 = $(DOM對象);注意:所有的jQuery對象在起名的時候,最好在變量名稱前+$,用于區分與DOM對象的差別
2.将jQuery對象轉換為DOM對象1. var dom對象 = jQuery對象.get(0)
2. var dom對象 = jQuery對象[0] 4.jQuery選擇器1.作用
擷取頁面上的元素們,傳回值都是由JQ對象所組成的數組.
文法: $("選擇器");2.選擇器詳解
1. 基礎選擇器1. ID選擇器
$('#id');
傳回id屬性值為指定id的元素對象
2. 類選擇器
$(".className");
傳回指定類名對象的元素
3. 标簽選擇器
$('element');
傳回指定标簽名對應的元素
4. 群組選擇器
$('selector1,selector2,...');
2.層級選擇器 1.$("selector1+selector2")名稱:相鄰兄弟選擇器
作用:比對緊緊跟在selector1後面且滿足selector2選擇器的元素
2.$("selector1~selector2")名稱:通用兄弟選擇器
作用:比對selector1後面所有滿足selector2選擇器的元素
3.基本過濾選擇器 1. :first隻比對到第一個元素
2. :last隻比對到最後一個元素
3. :not(selector)将滿足selector選擇器的元素排除出去
4. :odd比對 偶數行 元素 (奇數下标)
5. :even比對 奇數行 元素 (偶數下标)
6. :eq(index)比對下标等于index的元素
7. :gt(index)比對下标大于index的元素
8. :lt(index)比對下标小于index的元素
4.屬性選擇器 1.[attribute]作用:比對包含指定屬性的元素
ex: $("div[id]");
2.[attribute=value]作用:比對屬性值為value的元素
ex:
$("div[id=main]") -> $("#main");
$("[type=text]");
3.[attribute!=value]作用:比對屬性值不是value的所有元素
4.[attribute^=value]作用:比對屬性值以value字元作為開始的元素
5.[attribute$=value]作用:比對屬性值以value字元作為結尾的元素
6.[attribute*=value]作用:比對屬性值中包含value字元的元素
5.子元素過濾選擇器 1.:first-child比對屬于其父元素中的首個子元素
2.:last-child比對屬于其父元素中的最後一個子元素
3.:nth-child(n)比對屬于其父元素中的第n個子元素
:nth-child(1) --> :first-child
jQuery操作DOM1.基本操作
1.html()作用:擷取 或 設定 jQuery對象的HTML内容
等同于 innerHTML
ex:
var $div = $("#main");
console.log($div.html());
$div.html("動态設定的文本");
2.text()作用:純文字内容
等同于 :innerText
3.val()作用:擷取 或 設定 表單控件的 value 值
等同于 : value
2.屬性操作
1.attr()作用:讀取 或 設定 jQuery對象的 屬性值
1.$obj.attr("id");
擷取 $obj 對象的id屬性值
2.$obj.attr("id","container")
設定 $obj 對象的id屬性值為 container
2.removeAttr("attrName")作用:删除 jquery對象的 attrName 屬性
$obj.removeAttr("class");
3.樣式操作
1.attr("class","className")使用 attr() 綁定className 值到jq對象的class屬性上
2.addClass("className")作用:追加className選擇器到jq對象的class屬性後
傳回值:jq對象<div id="obj"></div>
var $obj = $("#obj");
$obj = $obj.addClass("c1");
結果:<div id="obj" class="c1"></div>
$obj = $obj.addClass("c2");
結果:<div id="obj" class="c1 c2"></div>
以上兩個操作,可以簡化為:
(連綴調用)
$obj.addClass("c1").addClass("c2").html();
3.removeClass("className")作用:将className屬性值從 class 屬性中移除
4.removeClass()作用:清空class屬性值
5.toggleClass("className")切換樣式:
元素如果具備className屬性值,則删除
元素如果沒有className屬性值,則添加
6.css("css屬性名")作用:擷取對應css屬性的值
$obj.css("id")
作用:擷取$obj對象的id屬性值
7.css("css屬性名","css屬性值")作用:為元素設定css屬性值
8.css(JSON對象)JSON對象 類似于 PYTHON中字典的寫法
$obj.css({
"color":"red",
"background-color":"orange"
}
);
4.周遊節點
1.children() / children(selector)作用:擷取jq對象的所有子元素或帶有指定選擇器的子元素
注意:隻考慮子代元素,不考慮後代元素
2.next() / next(selector)作用:擷取jq對象的下一個兄弟元素/滿足selector的下一個兄弟元素
3.prev() / prev(selector)作用:擷取jq對象的上一個兄弟元素/滿足selector的上一個兄弟元素
4.siblings() / siblings(selector)作用:擷取jq對象的所有兄弟節點 / 滿足selector的所有兄弟
5.find(selector)作用:擷取滿足selector選擇器的所有後代元素
6.parent()
作用:查找jq對象的父元素
5.建立元素 & 插入元素1.建立元素
文法:var $obj = $("建立的内容");注意:建立的内容必須是标記
ex:
1.建立一對div
var $div = $("<div id='xxx'>xxxxx</div>");
2.建立一對button
var $btn = $("<button></button>");
$btn.attr("id","btnDelete");
$btn.html("删除");
2.插入元素1.内部插入
1.$obj.append($new);将$new元素插入到$obj中最後一個子元素位置處
2.$obj.prepend($new);将$new元素插入到$obj中第一個子元素的位置處
2.外部插入
作為兄弟元素插入到網頁中
1.$obj.after($new);将$new作為$obj的下一個兄弟節點插入到網頁中
2.$obj.before($new);将$new作為$obj的上一個兄弟節點插入到網頁中
document.createElement("div");$("div")
$("<div></div>");
2.jQuery中的事件處理
1.DOM加載完成後的操作
1. $(document).ready(function(){//DOM樹加載完畢後要執行的操作
//相當于是頁面初始化
});
2. $().ready(function(){//效果同上
3. $( function(){//效果同上
} );
2.jQuery事件綁定1.方式1
$obj.bind("事件名稱",事件處理函數);$obj.bind("click",function(){
});
2.
$obj.事件名稱(function(){});
$obj.click(function(){
xxxxx
常用事件 $obj.click(fn); $obj.mouseover(fn); $obj.mousemove(fn); $obj.mouseout(fn); $obj.keydown(fn); $obj.keypress(fn); $obj.keyup(fn); $obj.focus(fn); $obj.blur(fn); $obj.change(fn); $obj.submit(fn); 3.事件中的this在jquery事件中,this表示的就是觸發目前事件的DOM對象
4.事件對象 - event在綁定事件的時候,允許傳遞 event 參數來表示事件對象
1.$obj.bind("事件名稱",function(event){event 表示的就是事件對象
});
2.$obj.事件名稱(function(event){ event的使用方式 與 原生JS事件中的事件對象一緻 1.事件源event.target
2.滑鼠事件event.offsetX : 在元素上的橫坐标
event.offsetY : 在元素上的縱坐标
3.鍵盤事件event.which : 鍵位碼或ASCII碼
5.激發事件操作$obj.事件名稱();
ex:
$obj.click(); //觸發$obj的click事件
$obj.click(function(){}); //為$obj綁定click事件
3.jQuery删除節點1.remove()
文法:$obj.remove();作用:删除$obj元素
2.remove("selector")
文法:$obj.remove("selector");作用:将滿足selector選擇器的元素删除
3.empty()
文法:$obj.empty();作用:清空 $obj 内容
4.jQuery 周遊操作 方法:each()1.循環周遊 jQuery 數組
$obj.each(function(i,obj){i : 循環出來的元素的下标
obj : 循環出來的元素(DOM元素)
});
2.循環周遊 JS數組(原生)1.将原生數組通過$()轉換成jQuery數組
2.
$.each(原生數組,function(i,obj){i : 周遊出來的下标
obj : 周遊出來的元素
});