Jquery知識(shí)點(diǎn)總結(jié)

一:認(rèn)識(shí)jquery

jquery是javascript的類庫(kù),具有輕量級(jí),完善的文檔,豐富的插件支持,完善的Ajax功能,強(qiáng)大的選擇器功能,出色的DOM操作封裝,出色的瀏覽器兼容性,可靠的事件處理機(jī)制,隱式迭代和鏈?zhǔn)骄幊滩僮鳎赓M(fèi)開源的庫(kù)

二:初始化jquery

jQuery方式監(jiān)聽頁(yè)面的加載:

1.函數(shù)內(nèi)部的代碼頁(yè)面加載(HTML)完畢之后執(zhí)行

2.調(diào)用N次,會(huì)執(zhí)行N次

3.jQ監(jiān)聽的代碼可以簡(jiǎn)寫

監(jiān)聽頁(yè)面加載完成 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?$(function(){ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

}) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

三:jquery定義活動(dòng)模板

$(function(){


})

四:jquery解決命名$沖突的問(wèn)題

設(shè)置的時(shí)候一定要放在最上面$還沒(méi)被定義變量之前 ?var xx = $.noConflict();

五:jquery的屬性操作的樣式?和css操作的樣式?? ? ? ? ? ? ? ?

1、css方法

語(yǔ)法:第一種:$("元素名稱").css('?name') 獲取第一個(gè)匹配元素的樣式屬性。

第二種:$("元素名稱").css('?name','value') 設(shè)置樣式屬性

第三種:是以對(duì)象的形式寫多種樣式

? $("").css({? ? ?

? ? ? ? ' name':'value',

? ? ? ? 'backgroundColor': '#ddd',

? ? ? ? 'fontWeight': '',

? ? })?

2、addClass方法

語(yǔ)法:$("p").addClass('屬性名1 屬性名2'); 給某個(gè)元素添加一個(gè)類名,可以是多個(gè)類名?

3、removeClass方法

?語(yǔ)法:語(yǔ)法:$("p").addClass('屬性名1 屬性名2'); 給某個(gè)元素刪除一個(gè)類名,可以是多個(gè)類名

4、toggleClass方法

語(yǔ)法:$("元素名稱").toggleClass(“class”) ?如果存在類就刪除,如果沒(méi)有就添加一個(gè)類

5、hasClass方法

語(yǔ)法:$("元素名稱").hasClass(“class”) ?查詢指定的標(biāo)簽中是否有指定的類,有返回true,沒(méi)有則返回false;

6、獲取內(nèi)容和修改內(nèi)容的方法 text()和html()

01.$("元素名稱").text() ?如果沒(méi)有內(nèi)容則獲取到元素的內(nèi)容,

? ??$("元素名稱").text('value') 有內(nèi)容則修改該元素的內(nèi)容為value

02.$("元素名稱").html() 如果沒(méi)有內(nèi)容則獲取到該元素的內(nèi)容,

? ??$("元素名稱").html('value') 有內(nèi)容則修改該元素的內(nèi)容為value

區(qū)別:一:html()操作的是innerHtml屬性節(jié)點(diǎn)的內(nèi)容

? ? ? ? ? ? ? ? text() 操作的是innerText屬性節(jié)點(diǎn)的內(nèi)容

? ? ? ? ? 二:html如果傳遞了參數(shù)表示設(shè)置標(biāo)簽的內(nèi)容覆蓋之前的內(nèi)容,傳遞的是標(biāo)簽加內(nèi)容會(huì)覆蓋之前的標(biāo)簽和內(nèi)容

? ? ? ? ? ? ? ? text傳遞參數(shù)是標(biāo)簽,則以文本形式展示

三:html方法沒(méi)有傳參,獲取第一個(gè)標(biāo)簽的節(jié)點(diǎn)內(nèi)容

? ? ? ? ? ? ? ? text方法沒(méi)有傳參,獲取所有標(biāo)簽的文本內(nèi)容拼接在一起返回

7、width() 方法和height()方法

語(yǔ)法: ?$("元素名稱").width() 如果不傳值就是獲取該元素的寬度,

? ? ? ? ? ??$("元素名稱").width(20) 如果傳值就是修改該元素的寬度,

? ? ? ? ? ? $("元素名稱").height() 如果不傳值就是獲取該元素的高度,

? ? ? ? ? ??$("元素名稱").height(20) 如果傳值就是修改該元素的高度,

8、val()方法

語(yǔ)法:$("input元素名稱").val(); 獲取input元素的值

? ? ? ? ? $("input元素名稱").val(value); 設(shè)置input元素的值為value? ??

9、offset()方法 ?

語(yǔ)法:?$("元素名稱").offset() 獲取該元素相對(duì)于當(dāng)前可視窗口的位置top和left值;返回一個(gè)對(duì)象{top:29,left:29}

方法:$("元素名稱").offset().top ; ? ?$("元素名稱").offset().left? ; ? ? ?

10、position()方法

語(yǔ)法:$("元素名稱").position() 獲取當(dāng)前標(biāo)簽距離父標(biāo)簽的距離 top和left值;返回一個(gè)對(duì)象{top:29,left:29}

方法:$("元素名稱").position().top ; ? ?$("元素名稱").position().left? ; ? ?

11、scrollTop()方法?滾動(dòng)條滾動(dòng)距離

語(yǔ)法:$(window).scrollTop() 獲取滾動(dòng)條滾動(dòng)的距離參數(shù)可選規(guī)定以像素計(jì)的新位置。一般不設(shè)置,設(shè)置100,就是會(huì)跑到100的位置,一般設(shè)置為0;點(diǎn)擊回到頂部

$(window).scrollLeft() 參數(shù)可選規(guī)定以像素計(jì)的新位置。一般不設(shè)置

滾動(dòng)條監(jiān)聽事件:$(window).on("scroll",fn)

點(diǎn)擊回到頂部案例:

//滾動(dòng)到一定距離按鈕出現(xiàn)

$(window).on("scroll",function(){

vara=$(window).scrollTop();

console.log(a)

varb=$(".x1").offset().top

console.log(b)

if(a>b){

$(".x3").css('display',"block")

}else{

$(".x3").css('display',"none")

? ? ? ? ? ? }

? ? ? ? })

//這里是一個(gè)按鈕,點(diǎn)擊回到頂部

$(".xi").on("click",function(){

$(window).scrollTop(0)

? ? ? ? })

12、innerHeight()和innerWidth() 方法

這個(gè)方法是獲取到元素的寬度和高度不包括邊框或者可視區(qū)域屏幕的寬度和高度

語(yǔ)法:$(window).innerHeight() 獲取可視區(qū)域的文檔高度

? ? ? ? ? $(window).innerWidth()?獲取可視區(qū)域的文檔寬度

六:jquery的選擇器

1、基本選擇器

ID選擇器:$("#myDiv") 匹配唯一的具有此id值的元素?

類選擇器:$(".myClass") 匹配具有此類樣式值的所有元素

標(biāo)簽選擇器:$("div") 匹配指定標(biāo)簽名稱的所有元素?

通配符選擇器:$("*") 匹配所有元素?

并集選擇器:$("div,span,p.myClass") 聯(lián)合所有匹配的選擇器?

交集選擇器:$("p.myClass") 匹配到p標(biāo)簽里面的類名 不常用

2、層級(jí)選擇器

后代選擇器:$("form input") 后代選擇器,選擇ancestor的所有子孫節(jié)點(diǎn)?

子代選擇器:$("#main > span")main下一級(jí)的的所有span子節(jié)點(diǎn)?

兄弟選擇器:$("label + input") 兄弟相鄰選擇器,選擇所有l(wèi)abel相鄰的第一個(gè)input節(jié)點(diǎn)?

兄弟選擇器:$("#prev ~ div") 相鄰后邊的所有,選擇prev的所有后面的div同胞節(jié)點(diǎn)

3、篩選選擇器,也是過(guò)濾選擇器

? ? ?$("li:first") 匹配第一個(gè)選擇的li元素

? ? ?$("li:last") 匹配最后一個(gè)選擇的li元素

? ? ?$("li:not(:first)")選擇除了第一個(gè)標(biāo)簽之外的所有l(wèi)i標(biāo)簽

? ? ?$("li").eq(4)選擇第5個(gè)li標(biāo)簽 索引0開始

? ? ?$("td:eq(2)") 匹配集合中指定位置的元素(從0開始)

? ? ?$("li:odd") 選擇索引為奇數(shù) 索引0開始

? ? ?$("li:even") 選擇索引為偶數(shù)的li標(biāo)簽 索引0開始

? ? ?$("li:lt(3)") ?$("li:gt(3)")選擇索引大于或者小于3的所有l(wèi)i標(biāo)簽

$(":animated")?獲取正在執(zhí)行動(dòng)畫效果的元素

4、屬性過(guò)濾選擇器?

$("div[屬性]") 匹配所有具有指定屬性的元素

$("input[name ='newsletter']") 匹配所有具有指定屬性值的元素

$("input[name !='newsletter']") 匹配所有不具有指定屬性值的元素

$("input[name ^='news']") 匹配所有指定屬性值以news開頭的元素

$("input[name $='letter']") 匹配所有指定屬性值以letter結(jié)尾的元素

$("input[name *='man']") 匹配所有指定屬性值含有man字符的元素

$("input[屬性1 =“值”][name2 $= 'man']") 匹配同時(shí)符合多個(gè)選擇器的所有元素

5、父子元素過(guò)濾器

$("ul li:nth-child(2)"), 匹配所有l(wèi)i標(biāo)簽的索引為2的li元素,索引0開始

$("ul li:nth-child(odd)"), 匹配所有l(wèi)i標(biāo)簽的奇數(shù)元素

$("ul li:nth-child(3n + 1)") 匹配所有l(wèi)i標(biāo)簽的第4,7,11元素

$("div span:first-child") 匹配所有span標(biāo)簽的第1個(gè)span元素

? ? ?$("div span:last-child") 匹配所有span標(biāo)簽的最后一個(gè)span元素

parent() 獲取指定標(biāo)簽的父節(jié)點(diǎn)

parents() 獲取指定標(biāo)簽的祖先節(jié)點(diǎn) 父節(jié)點(diǎn)以上都是 傳參如果指定祖先哪個(gè)就是哪個(gè)

parentsUntil() ?獲取指定標(biāo)簽的祖先節(jié)點(diǎn)直到...為止(不包含自己)

children() ? ?獲取指定標(biāo)簽的所有子節(jié)點(diǎn)

siblings() ? ?獲取指定標(biāo)簽的兄弟節(jié)點(diǎn) 除了自己以外的所有兄弟

? ? ?$(當(dāng)前元素).find(所有的后代元素)查找獲得當(dāng)前元素集合中每個(gè)元素的后代,必須參數(shù)


七:jquery的核心函數(shù)方法? ?

?1、$(this).index()方法 :

? ? ? ? 作用:獲取索引,角標(biāo)

2、get()方法:和 eq()方法差不多 ,不過(guò)get方法返回的是DOM標(biāo)簽

作用:獲取指定索引對(duì)應(yīng)的標(biāo)簽返回

如果沒(méi)有傳遞參數(shù):獲取頁(yè)面中所有指定的標(biāo)簽存儲(chǔ)在數(shù)組中返回

001 參數(shù)是正數(shù)

002 參數(shù)是負(fù)數(shù) 如果是-1,表示獲取倒數(shù)第一個(gè)

3、eq()方法

作用:獲取指定索引對(duì)應(yīng)的標(biāo)簽并且包裝成jQuery對(duì)象返回

沒(méi)有參數(shù):返回一個(gè)空的jQ對(duì)象(不是this)

001 參數(shù)是正數(shù)

002 參數(shù)是負(fù)數(shù) 如果是-1,表示獲取倒數(shù)第一個(gè)

4、data()方法 和 removeData()方法 :

作用:在元素上存取數(shù)據(jù)和刪除數(shù)據(jù)

1.在一個(gè)div上存取數(shù)據(jù)

$("div").data("blah"); ?// undefined

$("div").data("blah", "hello"); ?// blah設(shè)置為hello

$("div").data("blah"); ?// hello

$("div").data("blah", 86); ?// 設(shè)置為86

$("div").data("blah"); ?// ?86

$("div").removeData("blah"); ?//移除blah

$("div").data("blah"); ?// undefined

2.在一個(gè)div上存取名/值對(duì)數(shù)據(jù)

$("div").data("test", { first: 16, last: "pizza!" });

$("div").data("test").first ?//16;

$("div").data("test").last ?//pizza!;

3.在HTML5規(guī)范中div中讀取預(yù)存的data-[key]值

? ? ? $("div").data("test"); //this is test!;

八:jquery動(dòng)畫

動(dòng)畫隊(duì)列 : 如果某個(gè)標(biāo)簽身上被添加了多個(gè)動(dòng)畫任務(wù),那么這些任務(wù)會(huì)被按順序添加到隊(duì)列中等待執(zhí)行

按照隊(duì)列中任務(wù)的順序一個(gè)接著一個(gè)的執(zhí)行隊(duì)列中的任務(wù)

1.顯示和隱藏:顯示show() ,隱藏hide() ,切換toggle()

? ? ? ? 第一個(gè)參數(shù):動(dòng)畫時(shí)間(速度)

? ? ? ? 第二個(gè)參數(shù):動(dòng)畫執(zhí)行完畢之后的回調(diào)函數(shù)

? ? ? ? 本質(zhì):顯示和隱藏動(dòng)畫:控制標(biāo)簽的寬度和高度(透明度)來(lái)實(shí)現(xiàn)

2.展開和收起:展開slideDown() ,收起slideUp(), 切換slideToggle()

? ? ? ? 第一個(gè)參數(shù):動(dòng)畫時(shí)間(速度)

? ? ? ? 第二個(gè)參數(shù):動(dòng)畫執(zhí)行完畢之后的回調(diào)函數(shù)

? ? ? ? 本質(zhì):展開和收起動(dòng)畫:控制標(biāo)簽的高度

3.淡入淡出動(dòng)畫:淡入fadeIn(),淡出fadeOut(), 切換fadeToggle(timer,callback) ?

? ? ? ? 第一個(gè)參數(shù):動(dòng)畫時(shí)間(速度)

? ? ? ? 第二個(gè)參數(shù):動(dòng)畫執(zhí)行完畢之后的回調(diào)函數(shù)

? ? ? ? 淡入淡出到指定的值fadeTo (參數(shù)1,參數(shù)2,參數(shù)3)參數(shù)1為時(shí)間 ,參數(shù)2為透明度的值,參數(shù)3為回調(diào)函數(shù)

? ? ? ? 本質(zhì):操作標(biāo)簽設(shè)置標(biāo)簽的透明度

4.自定義動(dòng)畫:animate?

? ? ? ? 語(yǔ)法 jQ().animate(optionsObj,timer,callBack)

? ? ? ? 第一參數(shù)為對(duì)象,鍵值類要做什么動(dòng)畫

? ? ? ? 第二參數(shù)為時(shí)間

? ? ? ? 第三參數(shù)為回調(diào)函數(shù)

5.stop():停止任務(wù)

第一個(gè)參數(shù):控制隊(duì)列中的任務(wù)(是否清空) ?true|false

第二個(gè)參數(shù):控制是否停止動(dòng)畫 ? true|false

沒(méi)有參數(shù): 停止當(dāng)前的動(dòng)畫, 后面的任務(wù)繼續(xù)執(zhí)行

true true :立即完成當(dāng)前的動(dòng)畫,后面的任務(wù)不再執(zhí)行

true false:所有動(dòng)畫任務(wù)立刻停止

false false:停止當(dāng)前的動(dòng)畫,后面的任務(wù)繼續(xù)執(zhí)行 ?默認(rèn)的情況

false true :立即完成當(dāng)前的動(dòng)畫,后面的任務(wù)繼續(xù)執(zhí)行

6.delay():延遲執(zhí)行任務(wù)

九,jquery常見(jiàn)方法

jQ().addBack(); 把當(dāng)前的jQ實(shí)例對(duì)象和上一個(gè)jQ實(shí)例對(duì)象合并成一個(gè)新的jQ實(shí)例對(duì)象 ,設(shè)置在標(biāo)簽后面

?jQ().end(); 返回上一個(gè)jQ實(shí)例對(duì)象

?jQ().add(); 在當(dāng)前jQ實(shí)例對(duì)象的基礎(chǔ)上再添加一個(gè)jQ對(duì)象成為一個(gè)新的jQ對(duì)象參數(shù)為需要設(shè)置的標(biāo)簽

?jQ.isArray(); 檢查參數(shù)是否是數(shù)組

?jQ.isFunction(); 檢查參數(shù)是否是函數(shù) 和jQ.isArray方法一樣

?jQ.grep(); 過(guò)濾數(shù)組

第一個(gè)參數(shù):要處理的數(shù)組對(duì)象

第二個(gè)參數(shù):過(guò)濾函數(shù) 要傳值

第三個(gè)參數(shù):布爾類型的值,控制過(guò)濾翻轉(zhuǎn) 默認(rèn)是false

?jQ.makeArray(); 把類數(shù)組的結(jié)構(gòu)轉(zhuǎn)換為數(shù)組(偽數(shù)組-->數(shù)組)

?jQ.each(); 迭代(遍歷)

?jQ.map(); 數(shù)組映射

? ? ? ? ?.is(selector) :判斷括號(hào)里面的標(biāo)簽或者函數(shù),如果真,為true

?$(selector).next(expr):獲取$()緊鄰的同級(jí)元素,expr篩選的條件有的話就指定,沒(méi)有的話就是緊鄰的元素

方式一: ? $("p").next().css("background-color", "red") ?; 獲取p標(biāo)簽后面的第一個(gè)元素

方式二: ? $("p").next(“.class”).css("background-color", "red") ?; 獲取p標(biāo)簽后面的有類名為class標(biāo)簽

?$(selector).nextAll(expr) :獲取$()所有后面的元素,expr為篩選條件,有指定就是指定,

.first() 匹配所有同種元素中的第一個(gè): $("ul li").first().addClass('highlight');第一個(gè)li。

.last() 匹配所有同種元素中的最后一個(gè): $("ul li").last().addClass('highlight');最后一個(gè)li。

.not() 從匹配元素集合中刪除元素。

從包含所有段落的集合中刪除 id 為 "selected" 的段落:$("p").not("#selected")

從不是偶數(shù)中的li設(shè)置為紅色 ?$('li').not(':even').css('background-color', 'red');

遍歷?each方法的語(yǔ)法:

[1] jQ.each(target,fn(key,value){//...this}) 遍歷數(shù)組和對(duì)象 this指向value

[2] jQ().each(fn(key,value){//...this}) 遍歷jQ實(shí)例對(duì)象 this指向value

作用:迭代(遍歷)對(duì)象|數(shù)組|jQ實(shí)例對(duì)象(DOM節(jié)點(diǎn))

each方法使用注意點(diǎn)

在回調(diào)函數(shù)中提供返回值,如果返回的是false,那么迭代就結(jié)束,循環(huán)終止. ?return false;

回調(diào)函數(shù)中的this

each方法的回調(diào)函數(shù)中的this并非指向window,而是指向當(dāng)前循環(huán)的value值(對(duì)象)

map方法的使用

jQ.map(arr,fn(index,ele))

遍歷數(shù)組映射,并且對(duì)數(shù)組進(jìn)行處理(過(guò)濾|放大|重組)返回新的數(shù)組

return ele *2;

?if(ele >3) return ele + "A";

十、jquery中的事件類型

1.鼠標(biāo)的移入和移出事件

mouseenter|mouseleave 常用

mouseover|mouseout : 移動(dòng)到子標(biāo)簽有影響

hover(參數(shù)1,參數(shù)2)方法:本質(zhì)上對(duì)mouseenter|mouseleave方法封裝

? ? ? ? ? ? ? ?第一個(gè)參數(shù)(回調(diào)函數(shù)):鼠標(biāo)移入事件

? ? ? ? ? ? ? ?第二個(gè)參數(shù)(回調(diào)函數(shù)):鼠標(biāo)移出事件

? ? ? ? ? ? ? ?只傳遞一個(gè)回調(diào)函數(shù)作為參數(shù):不管是移入還是移出事件都會(huì)執(zhí)行回調(diào)函數(shù)。就是移入和移出

2.綁定一個(gè)事件 3.0版本已經(jīng)廢棄

$("p").bind("click", function(){

alert( $(this).text() );

});

bind( type, data, fn ) 為每一個(gè)匹配元素的特定事件(像click)綁定一個(gè)或多個(gè)事件處理器函數(shù)。可能的事件屬性有:blur, focus, load, resize, scroll, unload, click, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, error

當(dāng)元素獲得焦點(diǎn)時(shí),觸發(fā) focus 事件。data:focus(Data, fn) 可傳入data供函數(shù)fn處理。

blur 當(dāng)輸入框失去焦點(diǎn)時(shí)使用

?常用在表單中,當(dāng)輸入以后放開時(shí)調(diào)用

focus( ) 元素獲得焦點(diǎn)調(diào)用

change 當(dāng)輸入框發(fā)生變化時(shí)調(diào)用

?當(dāng)元素的值發(fā)生改變時(shí),會(huì)發(fā)生 change 事件。該事件僅適用于文本域

keydown() 鼠標(biāo)按下事件

kyeup 鼠標(biāo)抬起事件

ready事件,頁(yè)面加載完成之后調(diào)用

mousemove() 鼠標(biāo)移動(dòng)事件

resize 窗口發(fā)生改變的事件

scroll() 滾動(dòng)事件

submit 按鈕點(diǎn)擊表單事件

3.事件處理的兩種方法

$("div").click(function(e){...})

e.type : 事件的類型

e.target: 事件作用的對(duì)象

jQ().on(事件類型,[obj],function(e){...}

e.data.[對(duì)象名]: ? 傳遞對(duì)象參數(shù)給回調(diào)函數(shù)的對(duì)象可以省略

$().data(k,value)獲取在標(biāo)簽中的數(shù)據(jù)()里面也可以是保存數(shù)據(jù)的名稱

注意點(diǎn):給標(biāo)簽添加多個(gè)事件(可以是相同類型的),不會(huì)覆蓋

4.事件冒泡:?子標(biāo)簽和父標(biāo)簽身上如果注冊(cè)了相同類型的事件,那么子標(biāo)簽的事件被觸發(fā)的時(shí)候,父標(biāo)簽的事件也會(huì)被觸發(fā),而且它是層 ? ? ? ? ? ? ? 層向上觸發(fā)的,我們稱為事件冒泡.

5.如何阻止事件冒泡:

? ? ? ? ? [1] 在對(duì)應(yīng)的標(biāo)簽返回return false;

jQ().on(事件類型,[obj],function(e){...}

? ? ? ? ? [2] 調(diào)用事件對(duì)象的e.stopPropagation();方法來(lái)阻止 ,e為回調(diào)函數(shù)參數(shù)

6.標(biāo)簽的默認(rèn)行為

有一些標(biāo)簽它們本身有一些默認(rèn)行為,比如說(shuō)a標(biāo)簽,input標(biāo)簽,再給他們注冊(cè)事件(click...),那么會(huì)觸發(fā)多個(gè)操作

取消事件 off

jQ().off(type,function(){.....})

第一個(gè)參數(shù):事件的類型type

第二個(gè)參數(shù):過(guò)濾特定的事件fn

要取消按鈕身上特定的某一個(gè)點(diǎn)擊事件[把回調(diào)函數(shù)提取出來(lái)單獨(dú)聲明]

$("button").off("click"); ? //批量的取消按鈕身上所有的點(diǎn)擊事件

阻止標(biāo)簽的默認(rèn)行為:事件對(duì)象e.preventDefault()

7.如何自動(dòng)觸發(fā)事件

調(diào)用方式j(luò)Q().trigger(type事件類型)

?① 作用的對(duì)象:jQ實(shí)例對(duì)象中所有的標(biāo)簽

② 不會(huì)阻止事件冒泡

jQ().triggerHandler(type)

① 作用的對(duì)象:jQ實(shí)例對(duì)象中第一個(gè)標(biāo)簽

② 默認(rèn)會(huì)阻止事件冒泡

③ 默認(rèn)會(huì)阻止標(biāo)簽的默認(rèn)行為(部分)

8.事件委托

優(yōu)點(diǎn) (1) 可以給尚不存在的標(biāo)簽添加事件

(2) 可以提高性能

$("父或者祖父標(biāo)簽").on(參數(shù)1,參數(shù)2,function(){...})

第一個(gè)參數(shù):事件的類型

第二個(gè)參數(shù):給要做事件的子標(biāo)簽注冊(cè)事件(選擇器)

第三個(gè)參數(shù):事件發(fā)生后的回調(diào)函數(shù)

9.常用事件類型

blur( ) 元素失去焦點(diǎn) a, input, textarea, button, select, label, map, area

? ? ?change( ) 用戶改變域的內(nèi)容 input, textarea, select?

? ? ?click( ) 鼠標(biāo)點(diǎn)擊某個(gè)對(duì)象 幾乎所有元素?

? ? ?dblclick( ) 鼠標(biāo)雙擊某個(gè)對(duì)象 幾乎所有元素?

? ? ?error( ) 當(dāng)加載文檔或圖像時(shí)發(fā)生某個(gè)錯(cuò)誤 window, img?

? ? ?focus( ) 元素獲得焦點(diǎn) a, input, textarea, button, select, label, map, area

? ? ?keydown( ) 某個(gè)鍵盤的鍵被按下 幾乎所有元素?

? ? ?keypress( ) 某個(gè)鍵盤的鍵被按下或按住 幾乎所有元素?

? ? ?keyup( ) 某個(gè)鍵盤的鍵被松開 幾乎所有元素?

? ? ?load( fn ) 某個(gè)頁(yè)面或圖像被完成加載 window, img?

? ? ?mousedown( fn ) 某個(gè)鼠標(biāo)按鍵被按下 幾乎所有元素?

? ? ?mousemove( fn ) 鼠標(biāo)被移動(dòng) 幾乎所有元素?

? ? ?mouseout( fn ) 鼠標(biāo)從某元素移開 幾乎所有元素?

? ? ?mouseover( fn ) 鼠標(biāo)被移到某元素之上 幾乎所有元素?

? ? ?mouseup( fn ) 某個(gè)鼠標(biāo)按鍵被松開 幾乎所有元素?

? ? ?resize( fn ) 窗口或框架被調(diào)整尺寸 window, iframe, frame?

? ? ?scroll( fn ) 滾動(dòng)文檔的可視部分時(shí) window?

? ? ?select( ) 文本被選定 document, input, textarea?

? ? ?submit( ) 提交按鈕被點(diǎn)擊 form?

? ? ?unload( fn ) 用戶退出頁(yè)面 window

十一、jQueryDOM文檔操作的常見(jiàn)方法

1.html() ==> innerHTML 沒(méi)有參數(shù)表示獲取,傳遞參數(shù)表示設(shè)置

2.text() ==> innerText

3.removeChild()刪除子元素

4.remove() 刪除操作

把選中的指定標(biāo)簽刪除掉(刪除標(biāo)簽和內(nèi)容和子標(biāo)簽)

5.removeAttr()方法

所有指定元素刪除屬性

6.$(selector).removeAttr(attribute)

attribute類型必需。規(guī)定從指定元素中移除的屬性。

selector 指定要移除屬性的標(biāo)簽

沒(méi)有參數(shù),那么返回實(shí)例對(duì)象本身

//removeProp == removeAttr

7.detach()方法

刪除被選元素

$().detach()和remove()不一樣就是保留事件

8.empty() 清空操作

把選中的指定標(biāo)簽刪除掉(刪除內(nèi)容和子標(biāo)簽)不會(huì)刪除標(biāo)簽

9.clone() 克隆(復(fù)制)操作

把已經(jīng)有的標(biāo)簽再?gòu)?fù)制一份 ,復(fù)制的是標(biāo)簽和里面的所有

注意點(diǎn):默認(rèn)情況下,克隆標(biāo)簽的時(shí)候,不會(huì)包含事件,如果需要連同事件一起復(fù)制,那么就傳遞參數(shù)true

10.replaceWith() 替換操作

用一個(gè)新的標(biāo)簽和內(nèi)容來(lái)替換當(dāng)前的標(biāo)簽

11.replaceAll()替換

用指定的 HTML 內(nèi)容或元素替換被選元素

參數(shù):$(content).replaceAll(selector) ?selector規(guī)定要替換的元素

12.after()把內(nèi)容或者標(biāo)簽插入到標(biāo)簽的后面

?$(selector).after(content)

$(selector).after(function(index))

content必需。規(guī)定要插入的內(nèi)容(可包含 HTML 標(biāo)簽)

selector選擇器

13.before()把內(nèi)容或者標(biāo)簽插入到標(biāo)簽的前面

$("span").before("");

$(selector).before(content)

content必需。規(guī)定要插入的內(nèi)容(可包含 HTML 標(biāo)簽)

14.insertAfter() 把內(nèi)容或者標(biāo)簽插入到標(biāo)簽的后面

$("").insertAfter("span")

$(content).insertAfter(selector)

content 選擇器表達(dá)式,HTML 標(biāo)記

selector必需。規(guī)定在何處插入被選元素。

15.insertBefore()把內(nèi)容或者標(biāo)簽插入到標(biāo)簽的前面

$("").insertBefore("span")

$(content).insertAfter(selector)

content 選擇器表達(dá)式,HTML 標(biāo)記

selector必需。規(guī)定在何處插入被選元素

16.append()把內(nèi)容或者標(biāo)簽插入到標(biāo)簽里面內(nèi)容的后面

$("span").append("$('p')")

$(selector).append(content)

content必需。規(guī)定要插入的內(nèi)容(可包含 HTML 標(biāo)簽)

和有to的區(qū)別

(1) 沒(méi)有傳遞參數(shù): 返回this

(2) 不支持選擇器

(3)可以函數(shù)

17.appendTo()把所有的標(biāo)簽和內(nèi)容插入到標(biāo)簽內(nèi)容的后面

$(content).appendTo(selector)

content必需規(guī)定要插入的內(nèi)容(可包含 HTML 標(biāo)簽)。

selector必需規(guī)定把內(nèi)容追加到哪個(gè)元素上。

返回值:把插入的所有標(biāo)簽都保存到j(luò)Q實(shí)例對(duì)象中返回

18.prepend()

把所有的內(nèi)容和標(biāo)簽插入到標(biāo)簽里面內(nèi)容的前面

$("span").prepend("zs")

$(selector).prepend(content)

content必需規(guī)定要插入的內(nèi)容(可包含 HTML 標(biāo)簽)。

和有to的區(qū)別

(1) 沒(méi)有傳遞參數(shù): 返回this

(2) 不支持選擇器

(3)可以函數(shù)

19.prependTo()把所有的標(biāo)簽和內(nèi)容插入到標(biāo)簽內(nèi)容的前面

$(content).appendTo(selector)

content必需規(guī)定要插入的內(nèi)容(可包含 HTML 標(biāo)簽)。

selector必需規(guī)定把內(nèi)容追加到哪個(gè)元素上。

20.attr() 獲取和設(shè)置指定元素的屬性和值

$(selector).attr(attribute) 獲取值

$(selector).attr(attribute,value) 設(shè)置

jQ().attr({key:value,key:value}) 設(shè)置多個(gè)屬性

attribute 必選規(guī)定屬性的名稱。字符串

value 可選規(guī)定屬性的值。選了就是設(shè)置 參數(shù)可以是對(duì)象 字符串

語(yǔ)法:jQ().attr(沒(méi)有參數(shù)) ? 報(bào)錯(cuò) | jQ().attr(key) | jQ().attr(obj) | jQ().attr(key,value)

批量的給標(biāo)簽添加屬性

傳一個(gè)參數(shù)是獲取屬性值,傳兩個(gè)參數(shù)是刪除指定屬性和值

21removeAttr()

刪除屬性,傳一個(gè)參數(shù)是刪除屬性,傳兩個(gè)參數(shù)是刪除指定屬性和值

prop方法

語(yǔ)法:jQ().prop() 操作的是DOM標(biāo)簽的屬性

批量的給標(biāo)簽添加屬性

22.removeProp 刪除屬性值

attr和prop的區(qū)別

具有 true 和 false 兩個(gè)屬性的屬性,如 checked, selected 或者 disabled 使用prop()

23.prev()方法

?獲得當(dāng)前相同元素中前一個(gè)相同的元素

?$("p").prev(selector) 有值指定標(biāo)簽,獲取p標(biāo)簽之前的指定的前一個(gè)標(biāo)簽

selector 指定的類名,id等

$("p").prev(),沒(méi)值,獲取當(dāng)前p標(biāo)簽之前的前一個(gè)p標(biāo)簽

24.prevAll()

?獲得當(dāng)前相同元素中之前所有相同的元素

?$("p").prevA(selector) 有值指定標(biāo)簽,獲取p標(biāo)簽之前的指定的所有標(biāo)簽

selector 指定的類名,id等

?$("p").prevAll(),沒(méi)值,獲取當(dāng)前p標(biāo)簽之前的所有p標(biāo)簽

25val方法

語(yǔ)法:jQ().val()

如果沒(méi)有傳遞參數(shù),表示獲取第一個(gè)input標(biāo)簽的value值

如果傳遞參數(shù),表示批量的設(shè)置所有input標(biāo)簽的value值

val方法操作的是屬性不是屬性節(jié)點(diǎn)

26.unwrap()

刪除被選元素的父元素。

$("p").unwrap(); 被選元素是p標(biāo)簽

十二:DOM屬性節(jié)點(diǎn)的操作

? 1.dom操作增刪改查

添加|修改:setAttribute()

查詢獲取:getAttribute() ,hasAttribute()

刪除:removeAttribute()

2.?屬性和屬性節(jié)點(diǎn)對(duì)比

?屬性:所有的對(duì)象(包括DOM)都有屬性,保存在對(duì)象身上.

?屬性節(jié)點(diǎn):只有DOM標(biāo)簽有屬性節(jié)點(diǎn),保存在對(duì)象身上的attributes對(duì)象上面.比如heaf=“”

3.jquery獲取內(nèi)容和修改內(nèi)容

html() 操作的是innerHTML屬性 節(jié)點(diǎn)內(nèi)容

text() 操作的是innerText屬性 純文本內(nèi)容

html方法沒(méi)有傳參,獲取第一個(gè)標(biāo)簽的節(jié)點(diǎn)內(nèi)容

text方法沒(méi)有傳參,獲取所有標(biāo)簽的文本內(nèi)容拼接在一起返回

html如果傳遞了參數(shù)表示設(shè)置標(biāo)簽的內(nèi)容覆蓋之前的內(nèi)容,傳遞的是標(biāo)簽加內(nèi)容會(huì)覆蓋之前的標(biāo)簽和內(nèi)容

text傳遞參數(shù)是標(biāo)簽,則以文本形式展示

? ? ? ? val()獲取修改input里面的內(nèi)容

(jquery轉(zhuǎn)換DOM的常見(jiàn)方法)

jquery :$(標(biāo)簽).html()

DOM : ?標(biāo)簽.innerHTML

注意:

DOM對(duì)象訪問(wèn) jQ的實(shí)例對(duì)象 ?==> $(DOM標(biāo)簽).html();

? ? ? ?jQ實(shí)例對(duì)象訪問(wèn)DOM對(duì)象 ? ?==> ?jQ[i].innerHTML | ?jQ.get(i).innerHTML ?i為下標(biāo), ? jQ 表示 $(標(biāo)簽)

4.$.trim()方法

作用:清除字符串前面和后面的空格

兼容性處理

function f(str) {

if(str.trim) {

return str.trim();

}

? ? ? ? else {}

十三:js的綁定監(jiān)聽事件(js知識(shí))

監(jiān)聽DOM加載事件

作用:給DOM添加事件監(jiān)聽

document.addEventListener("事件類型",function () {

//表示等DOM構(gòu)造完成就執(zhí)行這里的代碼

console.log(document.getElementsByTagName("div")[0]);

})

第一個(gè)參數(shù):要監(jiān)聽的事件(DOM加載完畢) 比如onreadystatechange,load等原生的事件

第二個(gè)參數(shù):事件發(fā)生后的回調(diào)函數(shù)

十四:store框架文件用法

查詢:store.get(key)

保存:store.set(key,value) “data”為key

清空:store.clear()

一般用sessionstorage和localStorage等

十五:jquery中的ajax使用方法

1.Ajax-load方法

語(yǔ)法:$(selector).load(URL,data,callback);

參數(shù)一為路徑。路徑后面可以加指定的id或者類名標(biāo)簽等

參數(shù)二為添加的參數(shù)(JSON對(duì)象|查詢字符串)返回給服務(wù)器端。不要有空格

參數(shù)三為回調(diào)函數(shù) 一般不寫

注意點(diǎn):

1) 對(duì)返回的結(jié)果支持使用選擇器來(lái)進(jìn)行篩選

2)默認(rèn)情況下,發(fā)送的是GET請(qǐng)求

3) load方法在使用的時(shí)候,支持提交參數(shù)到服務(wù)器端

參數(shù)的格式支持兩種情況:

[1] JSON對(duì)象 發(fā)送的網(wǎng)絡(luò)請(qǐng)求是POST請(qǐng)求

[2] 查詢字符串 發(fā)送的網(wǎng)絡(luò)請(qǐng)求是GET請(qǐng)求

2.Ajax-get方法

語(yǔ)法:$.get(url,data,function(respoonse,status,xhr){},dataType)

參數(shù) url:請(qǐng)求路徑

data:參數(shù)(JSON對(duì)象|查詢字符串)

第三個(gè)參數(shù):請(qǐng)求完成的回調(diào)函數(shù)

response:服務(wù)器返回的響應(yīng)體

status: ?網(wǎng)絡(luò)請(qǐng)求狀態(tài)(success | error)

xhr: ? ? 請(qǐng)求對(duì)象

dataType:期望服務(wù)器返回的數(shù)據(jù)類型:json | xml | script |jsonP | text ? 一般不寫

3.Ajax-post方法

語(yǔ)法:$.post(url,data,function(respoonse,status,xhr){},dataType)

參數(shù) url:請(qǐng)求路徑

data:參數(shù)(JSON對(duì)象|查詢字符串)

第三個(gè)參數(shù):請(qǐng)求完成的回調(diào)函數(shù)

response:服務(wù)器返回的響應(yīng)體

status: ?網(wǎng)絡(luò)請(qǐng)求狀態(tài)(success | error)

xhr: ? ? 請(qǐng)求對(duì)象

dataType:期望服務(wù)器返回的數(shù)據(jù)類型:json | xml | script |jsonP | text ? 一般不寫

4.Ajax-ajax方法

語(yǔ)法:

(1) $.ajax(url,{})

(2) $.ajax({})

參數(shù):

url: 請(qǐng)求路徑(不帶參數(shù))

type: 請(qǐng)求方法 GET|POST

data: 設(shè)置參數(shù)(JSON對(duì)象|查詢字符串)

success:請(qǐng)求成功的回調(diào)函數(shù)

回調(diào)函數(shù)參數(shù)response:響應(yīng)體

status:響應(yīng)的狀態(tài)

xhr:請(qǐng)求對(duì)象

async:設(shè)置是否發(fā)送異步請(qǐng)求 默認(rèn)是異步

cache:是否要進(jìn)行緩存處理

timeout:請(qǐng)求超時(shí)的時(shí)間

beforeSend:請(qǐng)求發(fā)送前要執(zhí)行的回調(diào)函數(shù)

complete:請(qǐng)求完成執(zhí)行的回調(diào)函數(shù)

context:設(shè)置所有回調(diào)函數(shù)中this(上下文)指向特定的jQ實(shí)例對(duì)象

dataType:預(yù)期服務(wù)器返回的數(shù)據(jù)類型

error:請(qǐng)求失敗時(shí)調(diào)用此函數(shù)

? ? ? ? ? ? ?回調(diào)函數(shù)參數(shù)XMLHttpRequest, textStatus, errorThrown

5.jQuery框架Ajax事件方法

1.jQ().ajaxStart() ?監(jiān)聽網(wǎng)絡(luò)請(qǐng)求開始(第一個(gè))

2.jQ().ajaxStop() ? 監(jiān)聽網(wǎng)絡(luò)請(qǐng)求結(jié)束(最后一個(gè))

1.jQ().ajaxSend() ? 監(jiān)聽網(wǎng)絡(luò)請(qǐng)求開始(每一個(gè))

2.jQ().ajaxComplete() ? 監(jiān)聽網(wǎng)絡(luò)請(qǐng)求結(jié)束(每一個(gè))

6.jQuery框架Ajax序列化操作

1.把表單中所有的key-value轉(zhuǎn)換為字符串

"data":$("form").serialize()

2.把表單中所有的key-value轉(zhuǎn)換為查詢字符串

? ? ? ? ? $("#demo").serializeArray()

方法說(shuō)明:

load( url, [data], [callback] ) 裝入一個(gè)遠(yuǎn)程HTML內(nèi)容到一個(gè)DOM結(jié)點(diǎn)。

[javascript]view plaincopy

//例1??

$("#feeds").load("feeds.html");?將feeds.html文件載入到id為feeds的div中??

//例2??

$("#feeds").load("feeds.php",?{limit:?25},?function(){??

alert("The?last?25?entries?in?the?feed?have?been?loaded");??

});???

jQuery.get( url, [data], [callback] ) 使用GET請(qǐng)求一個(gè)頁(yè)面。?

[javascript]view plaincopy

$.get("test.cgi",?{?name:?“John",?time:?“2pm"?},?function(data){??

alert("Data?Loaded:?"?+?data);??

});???

jQuery.post( url, [data], [callback], [type] ) 使用POST請(qǐng)求一個(gè)頁(yè)面。和get一樣

$.post("demo_ajax_gethint.asp",{suggest:txt},function(result){

? ? $("span").html(result);

? });

jQuery.getJSON( url, [data], [callback] ) 使用GET請(qǐng)求JSON數(shù)據(jù)。

[javascript]view plaincopy

$.getJSON("test.js",?{?name:?“John",?time:?“2pm"?},?function(json){??

alert("JSON?Data:?"?+?json.users[3].name);??

});???

jQuery.getScript( url, [callback] ) 使用GET請(qǐng)求javascript文件并執(zhí)行。?

$.getScript("test.js",?function(){??

alert("Script?loaded?and?executed.");??

});???

ajaxComplete( callback ) 當(dāng)一個(gè)AJAX請(qǐng)求結(jié)束后,執(zhí)行一個(gè)函數(shù)。這是一個(gè)Ajax事件?

[javascript]view plaincopy

$("#msg").ajaxComplete(function(request,?settings){??

$(this).append("

  • Request?Complete.
  • ");??

    });???

    ajaxError( callback ) 當(dāng)一個(gè)AJAX請(qǐng)求失敗后,執(zhí)行一個(gè)函數(shù)。這是一個(gè)Ajax事件?

    [javascript]view plaincopy

    $("#msg").ajaxError(function(request,?settings){??

    $(this).append("

  • Error?requesting?page?"?+?settings.url?+?“
  • ");??

    });???

    ajaxSend( callback ) 在一個(gè)AJAX請(qǐng)求發(fā)送時(shí),執(zhí)行一個(gè)函數(shù)。這是一個(gè)Ajax事件?

    [javascript]view plaincopy

    $("#msg").ajaxSend(function(evt,?request,?settings){??

    $(this).append("

    });???

    ajaxStart( callback ) 在一個(gè)AJAX請(qǐng)求開始但還沒(méi)有激活時(shí),執(zhí)行一個(gè)函數(shù)。這是一個(gè)Ajax事件?

    [javascript]view plaincopy

    //當(dāng)AJAX請(qǐng)求開始(并還沒(méi)有激活時(shí))顯示loading信息??

    $("#loading").ajaxStart(function(){??

    $(this).show();??

    });???

    ajaxStop( callback ) 當(dāng)所有的AJAX都停止時(shí),執(zhí)行一個(gè)函數(shù)。這是一個(gè)Ajax事件?

    [javascript]view plaincopy

    //當(dāng)所有AJAX請(qǐng)求都停止時(shí),隱藏loading信息。??

    $("#loading").ajaxStop(function(){??

    $(this).hide();??

    });???

    ajaxSuccess( callback ) 當(dāng)一個(gè)AJAX請(qǐng)求成功完成后,執(zhí)行一個(gè)函數(shù)。這是一個(gè)Ajax事件?

    [javascript]view plaincopy

    //當(dāng)AJAX請(qǐng)求成功完成時(shí),顯示信息。??

    $("#msg").ajaxSuccess(function(evt,?request,?settings){??

    $(this).append("

  • Successful?Request!
  • ");??

    });???

    jQuery.ajaxSetup( options ) 為所有的AJAX請(qǐng)求進(jìn)行全局設(shè)置。查看$.ajax函數(shù)取得所有選項(xiàng)信息。

    [javascript]view plaincopy

    //設(shè)置默認(rèn)的全局AJAX請(qǐng)求選項(xiàng)。??

    $.ajaxSetup({??

    ??url:?“/xmlhttp/",??

    global:false,??

    ??type:?“POST"??

    });???

    $.ajax({ data: myData });?

    serialize( ) 以名稱和值的方式連接一組input元素。實(shí)現(xiàn)了正確表單元素序列?

    [javascript]view plaincopy

    function?showValues()?{??

    var?str?=?$("form").serialize();??

    $("#results").text(str);??

    }??

    $(":checkbox,?:radio").click(showValues);??

    $("select").change(showValues);??

    showValues();???

    serializeArray( ) 連接所有的表單和表單元素(類似于.serialize()方法),但是返回一個(gè)JSON數(shù)據(jù)格式。

    [javascript]view plaincopy

    //從form中取得一組值,顯示出來(lái)??

    function?showValues()?{??

    var?fields?=?$(":input").serializeArray();??

    ??alert(fields);??

    $("#results").empty();??

    jQuery.each(fields,function(i,?field){??

    $("#results").append(field.value?+?"?“);??

    ??});??

    }??

    $(":checkbox,?:radio").click(showValues);??

    $("select").change(showValues);??

    showValues(); ?

    ?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
    平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

    推薦閱讀更多精彩內(nèi)容

    • 由于看的是鋒利的jQuery(第二版)部分內(nèi)容可能沒(méi)更新, 推薦看jquery API中文文檔 第一個(gè)jquery...
      YM雨蒙閱讀 1,080評(píng)論 0 16
    • 第一章 入門 基本功能:訪問(wèn)和操作 dom 元素,控制頁(yè)面樣式,對(duì)頁(yè)面的事件處理,與ajax完美結(jié)合,有豐富的插件...
      X_Arts閱讀 1,066評(píng)論 0 2
    • 原文鏈接 http://blog.poetries.top/2016/10/20/review-jQuery 關(guān)注...
      前端進(jìn)階之旅閱讀 16,675評(píng)論 18 503
    • 開始寫博客啦,準(zhǔn)備一點(diǎn)一點(diǎn)將云筆記上面的總結(jié)轉(zhuǎn)移到這個(gè)上面來(lái).本菜鳥希望大家多多監(jiān)督我. 什么是jquery?JQ...
      盒小飯stone閱讀 538評(píng)論 0 0
    • 2016年8月4日這天,我終于成了房奴。 說(shuō)起我們的買房經(jīng)歷,我覺(jué)得用一個(gè)字形容比較貼切,那就是:快。的確,從決定...
      安小man閱讀 544評(píng)論 0 0