天天看點

JQuery

JQuery

jQuery是一套相容多浏覽器的javascript腳本庫.核心理念是寫得更少,做得更多,使用jQuery将極大的提高編寫javascript 代碼的效率,幫助開發者節省了大量的工作,讓寫出來的代碼更加優雅,更加健壯,“如虎添翼"。同時網絡上豐富的jQuery 插件也讓我們的工作變成了"有了jQuery,一切so easy。"

jQuery在2006年1月由美國人John Resig在紐約的barcamp 釋出,吸引了來自世界各地的衆多JavaScript 高手加入,由Dave Methvin 率領團隊進行開發。如今,jQuery已經成為最流行的javascript 架構,在世界前10000個通路最多的網站中,有超過55%在使用jQuery。

http:/ljquery.com/下載下傳

jQuery 2.x has the same APl as jQuery 1.x, but does not support InternetExplorer 6, 7,or 8.(不支援ie678,如果需要下載下傳1.X)T

完整版: jquery-2.1.4.js -->學習版本(學習源碼想高手學習是最好學習方法)

壓縮版:jquery-2.1.4.min.js -->開發版本(壓縮版,減少傳輸)

目前使用版本: jquery-3.5.1.js

提供了強大的功能函數

解決浏覽器相容性問題

實作豐富的UI和插件

糾正錯誤的腳本知識

<code>$</code>符号在jQuery中代表對 jQuery對象的引用, "jQuery"是核心對象。通過該對象可以擷取jQuery對象,調用jQuery提供的方法等。隻有jQuery對象才能調用jQuery提供的方法。

​ 明确Dom對象和jQuery包裝集的概念,将極大的加快我們的學習速度。原始的Dom對象隻有DOM接口提供的方法和屬性,通過js代碼擷取的對象都是dom對象;而通過jQuery擷取的對象是jQuery包裝集對象,簡稱jQuery對象,隻有jQuery對象才能使用jQuery提供的方法。

JavaScript中擷取DOM對象,DOM對象隻有有限的屬性和方法:

​ 可以說DOM對象的擴充,在Jquery的世界中将所用的對象,無論是一個還是一組,都封裝成一個Jquery包裝集,比如擷取包含一個元素的Jquery包裝集:

<code>var JqueryObject = $('#testDiv');</code>

​ DOM對象轉Jquery對象,隻需要利用$()方法進行包裹即可

​ 和使用js操作DOM一樣,擷取文檔中的節點對象是很頻繁的一個操作,在Jquery中提供了簡便的方式供我們查找|定位元素,稱之為Jquery選擇器,選擇器可以說是最考驗一個人Jquery功力的地方,通俗的将,Selector選擇器就是“一個表示特殊語意的字元串”。隻要把選擇器字元串傳入上面的方法中,就能夠選擇不同的DOM對象并且以Jquery包裝集的形式放回。

​ Jquery選擇器按照功能主要分為“選擇”和“過濾”。并且是配合使用的,具體分類如下。基礎選擇器掌握即可,其他用到查閱。

JQuery

選擇器

名稱

舉例

後代選擇器

ancestor descendant

$("#parent div")選擇id為parent的元素的所有後代div元素

子代選擇器

parent &gt; child

$("#parent&gt;div")選擇id為parent的直接div子元素

相鄰選擇器

prev + next

$(".blue + img") 選擇css類為blue的下一個img元素

同輩選擇器

prev ~sibling

$(".blue ~ img")選擇css類為blue的之後的img元素

後代選擇器 :選擇父元素的所有指定元素(包含第一代,第二代)

子代選擇器&gt;:選擇父元素所有的第一代子元素

相鄰選擇器+:選擇元素的下一個指定元素,(隻會查找下一個元素,如果元素不存在,則擷取不到)

同輩選擇器~:所有同輩元素

Forms

表單選擇器

:input

查找所有的input元素:$(":input");

注意:會比對所有的input,textarea,select和button元素

文本框選擇器

:text

查找所有的文本框:$(":text")

密碼框選擇器

:pasword

查找所有密碼框:$(":password")

單選按鈕選擇器

:radio

查找所有的單選按鈕:$(":radio")

複選框

:checkbox

查找所有複選框:$(":checkbox")

送出按鈕選擇器

:submit

查找所有複選框:$(":submit")

圖像域選擇器

:image

查找所有圖像域:$("image")

重置按鈕選擇器

:reset

查找所用重置按鈕$(":reset")

按鈕選擇器

:button

查找所有按鈕:$(":button")

檔案域選擇器

:file

查找所有檔案域:$(":file")

開發中若需要對擷取到的元素進行篩選,如僅擷取指定選擇器中的第一個或最後一個元素,偶數行或奇數行中的元素,可以使用jquery提供的基本過濾選擇器完成。

根據元素内容完成指定元素的擷取

功能描述

示例

:contains(text)

擷取内容包含text文本的元素

$("li:contains'js"擷取内容中含“js”的元素

:empty

擷取内容為空的元素

$("li:empty")擷取内容為空的元素

:has(selector)

擷取内容包含指定選擇器的元素

$("Ii:has('a')")擷取内容中含元素的所有元素

:parent

擷取内容不為空的元素(特殊)

$("li:parent")擷取内容不為空的元素

:hidden

擷取所有隐藏元素

<code>$("li:hidden")擷取所有隐藏的&lt;i&gt;元素&lt;br/&gt;:visible&lt;br/&gt;擷取所有可見元素&lt;br/&gt;$</code>

:visable

擷取所有可見元素

("li:visible")擷取所有可見的元素

當指定元素的display設定為none時,可以通過“:hidden”擷取隐藏的元素;

當指定元素的display設定為 block時,可以通過“:visible”擷取可見的元素。

jQuery中還提供了根據元素的屬性擷取指定元素的方式

JQuery

開發中若需要通過子元素的方式擷取元素,則可以利用jQuery 提供的子元素選擇器完成

JQuery

更好了解of-type 擷取所有含有<code>&lt;span&gt;</code>元素的第1個子元素

jQuery也提供了對HTML節點的操作,而且在原生js的基礎之上進行了優化,使用起來更加友善。

常用的從幾個方面來操作,查找元素(選擇器已經實作);建立節點對象;通路和設定節點對象的值,以及屬性;添加節點;節點;删除、添加、修改、設定節點的CSS樣式等。注意:以下的操作方式隻适用于jQuery對象。

方法

說明

attr(屬性名稱)

擷取指定的屬性值,操作checkbox時,

選中傳回checked,沒有選中傳回undefined

attr("checked")

attr('name')

prop(屬性名稱)

擷取具有true和false兩個屬性的屬性值

prop("checked")

屬性的分類:

固有屬性:元素本身就有的屬性(id,name,class,style)

傳回值是Boolean的屬性,checked,selected,disabled

自定義屬性,使用者自己定義的屬性

差別:

如果是固有屬性,attr()和prop()方法均可操作

如果是自定義屬性,attr()可以擷取,prop()不可擷取

如果是傳回值Boolean類型的屬性

若設定了屬性,attr()傳回具體的值,prop()傳回true

若未設定屬性,attr()傳回undefined,prop()傳回false

attr("屬性名","屬性值");

prop("屬性名","屬性值");

選擇器.removeAttr("屬性名")

總結:如果屬性類型是Boolean(checked,selected,disabled)使用prop()方法,否則使用attr()方法

attr("class")

擷取class屬性的值,即樣式名稱

attr("class","樣式名")

修改class屬性的值,修改樣式(原本的樣式會被覆寫

addClass("樣式名")

添加樣式名稱,如果出現相同的樣式,以後出現的為準

css()

添加具體的樣式(相當于添加行内樣式,樣式級别高)

css({"樣式名":"樣式值","樣式名":"樣式值"});

css("樣式名","樣式值");

removeClass(class)

移除樣式名稱

對于元素還可以操作其中的内容,例如文本,值,甚至是html

html()

擷取元素的HTML内容

html("html.内容")

設定元素的HTML内容

text()

擷取元素的文本内容,不包含HTML

text("text 内容")

設定元素的文本内容,不包含HTML

val()

擷取元素value值

val("值")

設定元素的value值

​ 在JQuery中建立元素很簡單,直接使用核心函數即可

​ <code>$('元素内容')</code>例如:

​ <code>$('&lt;p&gt;this is a paragraph!!&lt;/p&gt;')</code>

prepend(content)

在被選元素内部的最前面追加内容,被追加的content參數,可以是字元,HTML元素标簽

$(content).prependTo(selector)

把content元素或内容加入selector元素開頭

append(content)

在被選元素内容的結尾插入元素或内容,被追加的content參數,可以是字元,HTML标簽

$(content).appendTo(selector)

把content元素或内容插入selector元素内,預設是在尾部

before()

同級,在元素前插入指定的元素或内容:$(selector).before(content)

after()

同級,在元素後插入指定的元素或内容:$(selector).after(content)

注:在添加元素時,如果元素本身不存在(建立的元素),此時會将元素追加到指定位置

如果元素本身存在(已有元素),會将原來元素直接剪切設定到指定位置

remove()

删除所選元素或指定的子元素,包括整個标簽和内容一起删

empty()

清空所選元素的内容,會保留标簽

$(selector).each(function(index,element));周遊元素

參數 function 為周遊時的回調函數,每個比對元素都會去執行這個函數

index 為周遊元素的序列号,從0開始

element是目前的元素,此時是dom元素

在回調函數内部還可以直接使用$(this)來表示目前元素

JQuery

預加載事件,當頁面的dom結構加載完畢後執行

ready()類似于onLoad()事件

ready()可以寫多個,按順序執行

<code>$(document).ready(function(){}) 等價于</code> 簡寫<code>$(function(){})</code>

為被選元素添加一個或多個事件處理程式,并規定事件發生時運作的函數。

$(selector). bind( eventType , [ , eventData] , handler(eventobject)) ;

eventType :是一個字元串類型的事件類型,就是 你所需要綁定的事件。

這類類型可以包括如下:

blur, focus, focusin, focusout, load, resize, scroll, unload, click, dblclick,mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter,mouseleave,change, select, submit, keydown, keypress, keyup, error

eventData:傳遞的參數,格式:{名:值,名2:值2}

handler(eventObject):該事件觸發執行的函數

綁定單個事件:

綁定多個事件:

綁定事件三部曲:

為哪些元素綁定事件?

綁定什麼樣的事件?

事件觸發什麼樣的操作?

Asynchronous Javascript And XML,異步JavaScript和XML,是指一種建立互動式、快速動态網頁應用的網頁開發技術,無需重新加載整個網頁的情況下,能夠更新部分網頁的技術。

Ajax 不是一種新的程式設計語言,而是一種用于建立更好更快以及互動性更強的Web應用程式的技術。

ajax:異步,無重新整理

jquery調用ajax方法: 格式:$.ajax({});

參數:

​ type:請求方式GET/POST

​ url:請求位址

​ async:是否異步,預設true表示異步

​ data:發送到伺服器的資料,請求附帶的參數

​ contentType:設定請求頭

​ success: 請求成功調用此函數function(data){}

​ error: 請求失敗調用此函數

一個簡單的GET請求功能以取代複雜$.ajax

請求成功時可調用回調函數,如果需要在出錯時執行函數,請使用$.ajax

幾乎同$.get

注意:getJSON()隻識别json格式的檔案