
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選擇器按照功能主要分為“選擇”和“過濾”。并且是配合使用的,具體分類如下。基礎選擇器掌握即可,其他用到查閱。
選擇器
名稱
舉例
後代選擇器
ancestor descendant
$("#parent div")選擇id為parent的元素的所有後代div元素
子代選擇器
parent > child
$("#parent>div")選擇id為parent的直接div子元素
相鄰選擇器
prev + next
$(".blue + img") 選擇css類為blue的下一個img元素
同輩選擇器
prev ~sibling
$(".blue ~ img")選擇css類為blue的之後的img元素
後代選擇器 :選擇父元素的所有指定元素(包含第一代,第二代)
子代選擇器>:選擇父元素所有的第一代子元素
相鄰選擇器+:選擇元素的下一個指定元素,(隻會查找下一個元素,如果元素不存在,則擷取不到)
同輩選擇器~:所有同輩元素
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")擷取所有隐藏的<i>元素<br/>:visible<br/>擷取所有可見元素<br/>$</code>
:visable
擷取所有可見元素
("li:visible")擷取所有可見的元素
當指定元素的display設定為none時,可以通過“:hidden”擷取隐藏的元素;
當指定元素的display設定為 block時,可以通過“:visible”擷取可見的元素。
jQuery中還提供了根據元素的屬性擷取指定元素的方式
開發中若需要通過子元素的方式擷取元素,則可以利用jQuery 提供的子元素選擇器完成
更好了解of-type 擷取所有含有<code><span></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>$('<p>this is a paragraph!!</p>')</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)來表示目前元素
預加載事件,當頁面的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格式的檔案