jQuery基礎知識

》》》jQuery選擇器《《《《《css

jQuery選擇器(對比css選擇器): 基礎選擇器//僞類選擇器html

css選擇器----> $(" ") --->$(" ") jq選擇器jquery

基礎選擇器:express

基本選擇器:元素選擇器、id選擇器、class選擇器、羣組選擇器、*選擇器數組

元素選擇器:選擇相同的元素,而後對相同的元素進行操做瀏覽器

語法:$("元素名") 代碼:$(function(){ 代碼塊 }) 這個代碼相似於js中window.onload=function(){},也就是文檔加載文成後執行的代碼塊 補充:css是「對象的一個方法」,能夠用點運算符來代替,例如$("div").css()app

id選擇器:語法:$("#id名") id名字前面必需要加上#dom

class選擇器:語法:$(".類名") class名字前必需要加上.ide

羣組選擇器:語法:$("選擇器1,選擇器2,選擇器3")函數

選擇器(全選擇器):{margin:0;padding:0);選擇全部元素

層次選擇器:父子、後代、兄弟、相鄰

$("M N") 後代選擇器 選取M元素內部後代N元素 $("M>N") 子代選擇器 選取M元素中全部第一級子代N元素 $("M~N") 兄弟選擇器 ===$("M元素).nextAll() $("M+N") 相鄰選擇器 ===$("M元素).next()

區別: 後代選擇器選取的是元素內部全部的後代元素 子代選擇器選取的是元素內部的子元素;

技巧:在連li元素之間添加一個邊框的效果 $("li+li").css("attr","value")

屬性選擇器

$("selector[attr]") 選取包含特定屬性的元素 $("selector[attr='value']") 選取包含特定屬性值的元素 $("selector[attr!='value']") 選取不包含某特定屬性值的元素 $("selector[attr*='value']") 選取給定屬性以包含某些值的元素 $("selector[attr^='value']") 選取給定屬性以某些值開頭的元素(較少用) $("selector[attr$='value']") 選取給定屬性以某些值結束的元素(較少用) $("selector[selector1][selector2]...)" 複合屬性選擇器

實例: $("div[class]") $("input[type='checkbox']") $("input[type!='checkbox']")

$("div[calss *= 'nav']") 選擇class屬性包含nav的div元素

$("input[name^='group']") $("input[name $='group']")

$("div[id][class ^='lyve]") 選取有id屬性,且class屬性以lyve開頭的div元素

僞類選擇器(以:開頭) 包含:簡單僞類選擇器、子元素僞類選擇器、可見性僞類選擇器、內容僞類選擇器、表單僞類選擇器、表單屬性僞類選擇器 ,

簡單僞類選擇器: :not(selector) 選取某選擇器以外的元素 :first/first() 選取某元素的第一個元素 :last/last() 選取某元素的最後一個元素 :odd 選取索引值爲奇數的元素 :even 選取索引值爲偶數的元素 :eq(index) 選取某個給定索引值的元素 :lt(index) 選取小於某個索引值的元素 :gt(index) 選取大於某個索引值的元素 :header 選取h1-h6的標題元素 :animated 選取全部正在執行動畫效果的元素 :root 選取頁面的根元素//少用 :target 選取當前活動的目標元素(錨點)//少用

子元素僞類選擇器

第一類:不區分類型 :first-child 選擇父元素的第1個子元素 :last-child 選擇父元素的最後1個子元素 :nth-child(「整數|odd|even」) 選擇父元素下的第n個元素或奇偶元素 :only-child 選擇父元素中惟一的子元素

第二類:區分類型 :first-of-type 選擇同元素類型的第1個同級兄弟元素 :last-of-type 選擇同元素類型的最後1個同級兄弟元素 :nth-of-type 選擇同元素類型的第n個同級兄弟元素,n的值能夠是「整數|odd|even」 :only-of-type 匹配父元素中特定類型的惟一子元素(可是父元素能夠有多個子元素)

可見性僞類選擇器 :hidden (display:none+type="hidden"+visiblity:hidden :visible //定義鼠標單擊事件 代碼:$(#btn).click(function(){ //鼠標事件的內容 });

內容選擇器 :contains(text) 選擇包含給定文本內容的元素 :has(selector) 選擇含有選擇器所匹配元素的元素 :empty :parent 選擇含有子元素或者文本的元素(跟:empty相反)

表單僞類選擇器 :input 選擇全部input元素 :button 選擇全部普通按鈕,即type="button"的input元素 :submit 選擇全部提交按鈕,即type="submit"的input元素 :reset 選擇全部重置按鈕,即type="reset"的input元素 :text 選擇全部單行文本框 :textarea 選擇全部多行文本框 :password 選擇全部密碼文本框 :radio 選擇全部單選按鈕 :checkbox 選擇全部複選框 :image 選擇全部圖像域 :hidden 選擇全部隱藏域 :file 選擇全部文件域

表單屬性僞類選擇器

:checked 選擇全部被選中的表單元素,通常用於radio和checkbox option:selected 選擇全部被選中的option元素 :enabled 選擇全部可用元素,通常用於input、select和textarea :disabled 選擇全部不可用元素,通常用於input、select和textarea :read-only 選擇全部只讀元素,通常用於input和textarea :focus 選擇得到焦點的元素,經常使用於input和textarea

》》》》元素操做《《《《《 對於元素的操做分爲3個方面:屬性操做,內容操做,樣式操做

屬性操做:獲取、設置、刪除

獲取:$().attr("屬性名") 設置:$().attr("屬性名","屬性值") 刪除:$().removeAttr()

!!注意:此外在jQuery中,除了可使用attr()方法來操做元素的屬性以外,還可使用prop()方法。prop()方法和attr()方法語法相同,其中prop()用於獲取和設置元素屬性,removeProp()用於刪除元素的屬性。

其中attr()方法用於操做元素的固有屬性,所謂的「固有屬性」指的是元素自己具備的屬性如a標籤的href、target、title等。而prop()方法用於操做元素的自定義屬性,所謂的「自定義屬性」指的是用戶本身定義的一些屬性。

內容操做:獲取內容html()/text() 獲取表單元素的內容(值)val() 獲取元素內容:$().html()/$().text() 獲取表單的值:$().val()

樣式操做:css屬性操做//css類名操做

css屬性操做: 獲取: $().css("屬性") 設置:單個屬性設置:$().css("屬性","屬性值") 多個屬性設置: $().css({"屬性1":"屬性值1","屬性2":"屬性值2",……})

css類名操做: 添加:$().addClass("類名") 刪除:$().removeClass("類名") 切換: $().toggleClass("類名")

盒子模型的寬度和高度(均不帶px,是純數字!!!) 寬度: width() width 只有它能用於window或者document對象 innerWidth() width+padding outerWidth() width+padding+border

高度: height() height() innerHeight() height+padding outerHeight() height+padding+border

盒子模型的位置:offset()和positon()

offset() 元素相對於document的偏移距離 語法:不帶單位!! $().offset() 返回座標對象,(top,left) $().offset().top 返回元素至關於文檔頂部的距離 $().offset().left 返回元素至關於文檔左邊的距離

position 元素相對於其被定位的祖輩元素的偏移距離 語法:不帶單位!! $().position() $().position().top $().position().left

父元素position:relative 子元素position:absolute

滾動條的距離:scrollTop()和scrollLeft() scrollTop:元素相對於垂直滾動條頂部的距離 語法: $().scrollTop()

scrollLeft:元素相對於水平滾動條左邊的距離 語法:$().scorllLeft()

DOM操做***

常見DOM操做:建立節點//插入節點//刪除節點//複製節點//替換節點//包裹節點//遍歷節點

建立節點 語法:var e=$(html); $().append(e); // var $li="<li></li>"; $().append($li);

!!在建立複雜節點時,因爲複雜節點的屬性與屬性值之間必須用"",最外面必須用''來表示

插入節點 備註:在js中,插入節點只有appendChild()和insertBefore()兩種,而jQuery中提供了大量的方法

內部插入節點:末尾:append()和appendTo(); 開始: prepend()和prependTo(); 語法:$(A).append(B); 在A的內部的末尾加入B $(B).appentTo(A) 效果同上

外部插入節點:before()和insertBefore(); after()和insertAfter(); 語法: $(a).before(b) 在a的外部以前加入元素b

刪除節點 remove()方法;detach()方法;empty()方法

$(a).remove()刪除節點 (雖然節點被刪除了,可是還能夠經過返回值來再次使用這個對象) $(b).detach()半刪除節點 (只刪除元素,元素綁定的事件並不會刪除) $(c).empty() 保留自身節點,刪除後代節點

複製節點 語法:$(a).clone()默認false $(a).clone(false) 複製a節點,但不復制a節點所綁定的事件 $(a).clone(ture) 複製a節點,而且複製事件

替換節點(元素被替換後,其說綁定的事件會消失) $(a).replaceWith(b) 用b來替換a $(a).replaceAll(b) 用a來替換b

包裹節點 $(a).wrap(b) 用a來包裹全部b進行單獨包裹(做用於單獨元素) $(a).wrapAll(b) 將全部匹配的元素b用一個元素來包裹(做用於元素總體) $(a).wrapInner(b) 將a元素全部內部子元素使用b元素包裹(不包含a自己) [與warp()效果同樣,可是html結構不同] //$('p').unwarp();刪除p元素的父元素,保留自身以及兄弟元素

遍歷節點 語法:$().each(function(index,elements){ this-->elements }) 只遍歷兒子級別元素 $("div").children() 遍歷全部後代元素 $("div").find("li") 查找父級元素 $("ul").parent() 查找第一個符合條件的祖先元素 $("div").closest() 查找下一個兄弟元素 $("div").next() 查找前一個兄弟元素 $("div").prev() 查找全部的兄弟元素 $("div").siblings()

add()是指在jquery對象集合中增長一個對象,而append()是在DOM集合中增長一個節點,add()不會直接影響界面,append()會對界面產生影響.

*jQuery事件簡介 jQuery事件:頁面載入事件、鼠標事件、鍵盤事件、表單事件、滾動事件、綁定事件、解綁事件、合成事件、一次事件

頁面載入事件 js中的window.onload()方法,只有在元素加載完,以及該元素關聯的文件加載完以後才能執行;如果頁面中有多個window.onload(),瀏覽器只會執行最後一個(要實現多個wiondow.onload,須要使用addLoadEvent方法)

jq中的$().ready()方法,只要DOM元素加載完就能夠執行(能夠大幅提升頁面的相應速度以及執行效率)

ready()方法的4種寫法: 第一種:$(document).ready(function(){ 代碼內容 })

第二種: jQuery(document).ready(function(){ 代碼內容 }) 第三種 $(function(){ 代碼內容 }) 第四種 jQuery(function(){ 代碼部分 })

鼠標事件 click(單機)//dbclick(雙擊)//mouseover(移入)//mouseout(移出)//mousedown(按下)//mouseup(鬆開)//mousemove(鼠標移動)

語法: $().鼠標事件(function(){ 代碼塊 })

mouseover mouseout 鼠標在接觸/移除所選元素及其後代子元素時都會觸發事件

mouseenter mouseleave 鼠標在只接觸/移出所選元素時纔會觸發事件

鍵盤事件 keypress//keydown//keyup

補充:String.fromCharCode() 表示將ASCII碼轉換爲字符

keypress只有在按下字符鍵時觸發 keydowm 按下任意鍵都會觸發

表單事件 focus()得到焦點 // blur()失去焦點

focusin()和focusout()支持冒泡排序,而focus()和blur()不支持

change()事件

select事件(只能用於<input>和<textarea>這兩個元素)

submit()事件

具備得到焦點+失去焦點事件+change事件的元素有3個:text//textarea//select 下拉列表中列表項的選中事件是change而不是select

滾動事件 語法:$().scroll(fn) 滾動事件經常和scrollTop()和scrollLeft()這兩個方法一塊兒使用,在滾動條的位置發生變化時,觸發相應的事件

綁定事件 on()方法 語法:$().on(type,fn) type是必選參數,表示事件類型,type是一個字符串 fn必選,表示事件的處理函數

一、在jQuery中綁定事件不是還有bind()和live()麼?爲何站長不給咱們詳細講解一下?

從jQuery1.7開始(咱們如今用的是jQuery1.12.0),對於綁定事件,jQuery官方都建議使用on()方法來統一取代之前的bind()、live()和delegate();對於解綁事件,jQuery官方也建議使用off()方法來統一取代之前的unbind()、die()和undelegate()。所以,你們必須瞭解和清楚這一點。

解綁事件 off( ) 語法:$().off(type)

合成事件$().hover(f1,f2) 語法:$("#wrapper").hover(function () { //第1個function的內容 }, function () { //第2個function的內容 })

一次性事件one() 語法: $().(type,fn)

事件對象event event.type 事件類型 event.pageX event.pageY 鼠標對於當前頁面的座標 event.preventDefault() 阻止默認行爲 event.stopPropagation()阻止事件冒泡 event.which 獲取用戶單擊鼠標時,單擊的是鼠標的哪一個按鍵 event.currentTarget 在事件冒泡過程當中的當前DOM元素

this 和event.target的區別:js中事件是會冒泡的,因此this是能夠變化的,但event.target不會變化,它永遠是直接接受事件的目標DOM元素;

this和event.target都是dom對象:若是要使用jquey中的方法能夠將他們轉換爲jquery對象。好比this和$(this)的使用、event.target和$(event.target)的使用;

自定義事件 trigger事件:根據綁定到的匹配元素的給定的事件(原生或者自定義均可以)類型執行全部的處理程序和行爲 語法: $('#elem').on('Aaron', function(event,arg1,arg2) { alert("自觸自定義時間") }); $('#elem').trigger('Aaron',['參數1','參數2'])

.trigger()方法會影響全部與jquery對象所匹配的元素,使得DOM元素向上冒泡 要想阻止冒泡,可使用.triggerHandler()方法

》》》》》jQuery動畫基礎《《《《《《

顯示和隱藏(切換):改變height、width和opacity屬性

語法:$().show(speed,callback) 顯示 speed必選,表示動畫執行速度,單位毫秒;callback爲必選參數 $().hide() 隱藏 $().toggle(speed,callback) 切換元素的顯示狀態

淡入和淡出:改變opacity屬性 語法: $().fadeIn(speed,callback) 淡入 $().fadeOut(speed,callback) 淡出 $().fadeToggle(speed)切換
$().fadeTo(speed,opacity,callback) 淡出效果 opacity必選,speed和callback爲可選參數 d

滑上和滑下:

語法:$().slideUp(speed,callback) 實現元素的滑上效果 $().slideDown(speed,callback) 滑下 $().slideToggle(speed,callback) 切換滑動狀態,配合flag一塊兒使用

自定義動畫 animate()方法 語法:$().animate(params, speed, callback) params是必選參數,是「屬性:值」列表 speed 可選參數 callback可選

!!注意 1.使用animate()方法改變顏色相關屬性時,須要調用jquery.color.js

2.在屬性值前面加上"+="表示累加(在原有屬性值的基礎上添加)

3.在animate方法中添加css後,css會馬上執行,正確的方法是將css放入在回調函數中

隊列動畫(鏈式效果) 語法: $().animate().animate()....

中止動畫效果: 語法:$().stop(clearQueue,gotoEnd)說明clearQueue是可選參數,表示是否要清空未執行的動畫隊列,默認false;gotdEnd表示是否將正在執行的動畫跳轉到末尾狀態,默認false

幾種狀況: stop() 僅中止當前動畫,後面的動畫能夠繼續執行 stop(true) 中止全部動畫,包括當前執行的動畫 stop(true,true) 中止全部動畫,但容許執行當前動畫 stop(false,true)中止當前動畫,直接跳到最後一個動畫

延遲動畫效果: 語法: $().delay(speed)

判斷動畫狀態 語法: if(!$().is(":animated")) { //若是當前沒有進行動畫,則添加新動畫 }

補充: 1.判斷元素是否在數組中:inArray(value,array,[fromIndex]) 2.去除空格 $.trim(元素) 3.獲取某個元素 .get(index) 4.獲取元素對象的索引 .index(selector/element) 注意:$().index() 返回的是同輩元素的排列順序

》》》》》》jQuery過濾和查找方法《《《 過濾方法:以方法的形式選擇某些元素

hasClass() 判斷是否含有某個類 true/false eq(n) 選擇指定下標的元素 is() 判斷元素是否符合某個條件 true/false not() 選擇不符合條件的元素 filter() 「自定義表達式」來選擇符合條件的元素 has() 「自定義表達式」選擇符合條件的元素

查找方法: 查找祖先元素: 父元素:parent(惟一) 祖先元素:parents(多個) 指定範圍:parentUntil()

查找後代元素: 一級子元素:children(expression) 子元素+節點註釋(contents) find()找到指定後輩元素

向前查找兄弟元素: prev();prevAll();prevUntil() 向後查找兄弟元素: next();nextAll();nextUntil() 查找全部兄弟元素:siblings() 查找全部兄弟元素:

相關文章
相關標籤/搜索