jQuery超詳細總結

2020-3-7    前端達人

jQuery超詳細總結

文章目錄

jQuery超詳細總結

一 選擇器

特殊選擇器

二 篩選器

用在 jQuery 選擇的元素后面

都是方法,對選擇出來的元素進行二次篩選

三 文本操作

總結

四 元素類名操作

五 元素屬性操作

在 H5 的標準下, 給了一個定義, 當你需要寫自定義屬性的時候,最好寫成 data-xxx="值",當大家看到 data-xxx 的時候, 就知道這是一個自定義屬性

六 元素樣式操作

七 綁定事件

  1. on()方法是專門用來綁定事件
  2. one() 方法是專門用來綁定一個只能執(zhí)行一次的方法
  3. off() 方法是專門用來解綁一個元素的事件的
  4. trigger() 方法是專門用來觸發(fā)事件的方法
  5. hover()
  6. 常用事件

    八 節(jié)點操作
  7. 創(chuàng)建節(jié)點
  8. 插入節(jié)點
  9. 刪除節(jié)點
  10. 替換節(jié)點
  11. 克隆節(jié)點

    九 獲取元素尺寸

    尺寸: 元素的占地面積

    三套方法, 四種使用方式

    十 獲取元素位置
  12. offset()
  13. position()

    十一 獲取卷去的尺寸(頁面滾動條)

    scrollTop()

    scrollLeft()

    十二 jQuery中的函數

    ready() 事件

    each() 方法

    十三 jQuery中的動畫

    讓元素出現不同的移動, 改變

    標準動畫

    折疊動畫

    漸隱漸顯動畫

    綜合動畫

    停止動畫

    十四 jQuery發(fā)送ajax請求

    jQuery 里面幫我們封裝好了幾個方法

    專門用來發(fā)送 ajax 請求的

    jQuery 發(fā)送一個 GET 請求

    jQuery 發(fā)送一個 POST 請求

    jQuery 的 $.ajax 方法

    jQuery 的 ajax 全局鉤子函數

    十五 jQuery 發(fā)送一個 jsonp 請求

    十六 jQuery 的多庫并存機制

    十七 jQuery 的插件擴展機制

    十八 jQuery 的拷貝對象問題

    十九 jQuery 的插件

    jQuery 是一個前端庫,也是一個方法庫

    他里面封裝著一些列的方法供我們使用

    我們常用的一些方法它里面都有,我們可以直接拿來使用就行了

    jQuery 之所以好用,很多人愿意使用,是因為他的幾個優(yōu)點太強大了

    優(yōu)質的選擇器和篩選器

    好用的隱式迭代

    強大的鏈式編程

    因為這些東西的出現,很多時候我們要做的事情被 “一行代碼解決”

    接下來我們就來認識一下 jQuery

    一 選擇器

    $()

    css怎么獲取元素這里就怎么寫

    獲取的是一組元素,當里面是id時,這組元素只有一個內容

    特殊選擇器

    :first $('li:first') 獲取元素集合里的 第一個元素

    //  console.log($('li:first'))

    1

    :last $('li:last') 獲取元素集合里的 最后一個元素

    :eq() $('li:eq()')獲取元素集合里 索引為n 的那個元素,索引從0開始

    :odd $('li:odd') 獲取所有索引為 奇數 的元素

    :even $('li:even') 獲取所有索引為 偶數 的元素

    二 篩選器

    用在 jQuery 選擇的元素后面

    都是方法,對選擇出來的元素進行二次篩選

    first() 篩選 元素集合里面的 第一個元素

    //  console.log($('li').first())

    1

    last() 篩選 元素集合里面的 最后一個元素

    eq(n) 篩選元素集合里 索引為n 的那個元素

    next() 篩選出來 元素 的下一個 兄弟元素

    nextAll() 篩選出 元素后面的 所有 兄弟元素

    nextAll(選擇器) 篩選出元素后面的 所有兄弟元素 中符合選擇器的元素

    nextUntil(選擇器) 篩選出 元素后面的所有兄弟元素 直到 選中的元素為止 不包含選中的元素

    //  console.log($('span').nextUntil('.a10'))

    1

    prev() 篩選出來 元素 的上一個 兄弟元素

    prevAll() 篩選出 元素上面的 所有 兄弟元素 (元素集合中的元素 從上一個兄弟元素開始排序)

    prevAll(選擇器) 篩選出 元素上面的 所有兄弟元素 中符合選擇器的元素

    prevUntil(選擇器) 篩選出 元素上面的所有兄弟元素 直到 選中的元素為止 不包含選中的元素

    //  console.log($('span').prevUntil('.a10'))

    1

    parent() 篩選出元素的 父元素

    parents()篩選出元素的 所有祖先元素 直到html元素

    parents(選擇器)拿到 所有祖先元素中的符合選擇器的元素

    parentsUntil(選擇器)篩選出元素的 所有的祖先元素 直到某一個元素 不包含該元素

    //  console.log($('span').parents('body'))

    // console.log($('span').parentsUntil('html'))



    children() 篩選出元素的 所有子級元素



    children(選擇器) 篩選出元素 所有子級元素中的 符合選擇器的元素

    siblings() 篩選出所有的兄弟元素 不包含 自己



    siblings(選擇器) 篩選出所有的兄弟元素中的 符合選擇器的元素

    find(選擇器)



    篩選 一個元素后代中的 符合選擇器的元素

    在一個元素集合的每一個元素中 查找后代元素 符合選擇器的元素

    index() 獲取元素的索引位置



    索引位置是指 是該父元素下的第幾個元素 拿到的是 數字

    三 文本操作

    html() 一個讀寫的屬性

    html()不傳遞 參數的時候 就是獲取元素內部的超文本內容

    html(參數)傳遞 參數的時候 就是設置元素內部的超文本內容

    text() 一個讀寫的屬性

    text()不傳遞 參數的時候 就是獲取元素內部的超文本內容

    text(參數)傳遞 參數的時候 就是設置元素內部的超文本內容

    val() 一個讀寫的屬性 操作 input 標簽

    val()不傳遞參數的時候, 就是獲取標簽的 value 值

    val(參數)傳遞一個參數的時候, 就是設置標簽的 value 值

    總結

    獲取

    html() 只能獲取第一個元素的超文本內容

    text() 能獲取元素集合內所有元素的文本內容合

    val() 只能獲取第一個元素的 value 值

    設置

    html() 給元素集合內所有元素設置超文本內容

    text() 給元素集合內所有元素設置文本內容

    val() 給元素集合內所有元素設置 value 值

    四 元素類名操作

    addClass() 添加類名

    執(zhí)行這個方法會給元素集合里面所有的元素添加上固定的類名

    如果有就不添加, 不存在這個類名時添加

    removeClass() 移除類名

    執(zhí)行這個方法刪除 元素集合里面所有元素 的指定類名

    toggleClass()切換類名

    執(zhí)行這個方法會給元素集合里面的所有元素切換類名

    本身存在這個類名, 刪除類名

    本身不存在這個類名, 添加類名

    hasClass() 判斷有沒有某一個類名

    返回的時一個布爾值, 表示這個類名是否存在

    五 元素屬性操作

    在 H5 的標準下, 給了一個定義, 當你需要寫自定義屬性的時候,最好寫成 data-xxx=“值”,當大家看到 data-xxx 的時候, 就知道這是一個自定義屬性

    attr() 和 removeAttr()



    attr: attribute 屬性

    attr()

    是一個讀寫的方法

    attr(要讀取的屬性名): 傳遞一個參數的時候是讀取

    attr(屬性名, 屬性值): 傳遞兩個參數的時候是設置

    removeAttr() 專門用來移除屬性的

    attr 這套方法的注意:

    所有的屬性都會顯示在標簽上(原生屬性和自定義屬性)

    不管你設置的是什么數據類型, 都會給你變成字符串

    removeAttr 刪除 attr 設置的屬性, 有多少刪除多少(針對自定義屬性)

    prop() 和 removeProp()



    prop: property 屬性

    prop()

    一個讀寫的方法

    prop(要讀取的屬性名): 傳遞一個參數的時候是讀取

    prop(屬性名, 屬性值): 傳遞兩個參數的時候是設置

    removeProp()專門用來移除屬性的

    prop 這套方法的注意:

    非原生屬性, 不會顯示在標簽上, 但是你可以獲取使用

    你存儲的是什么數據類型, 獲取的時候就是什么數據類型

    removeProp 刪除 prop 設置的屬性, 有多少刪除多少(針對自定義屬性)

    removeProp() 不能刪除原生屬性 id class style 等等

    data() 和 removeData()



    data: data 數據

    data()

    一個讀寫的方法

    data(要讀取的屬性名): 傳遞一個參數的時候是讀取

    data(屬性名, 屬性值): 傳遞兩個參數的時候是設置

    removeData() 專門用來刪除數據的

    data 這套方法的注意:

    和元素的原生屬性沒有關系, 可以設置 id, 但是和元素的 id 沒關系

    就是在元素身上給你開辟一個地方, 存儲一些數據

    你設置的是什么數據類型, 拿到的就是什么數據類型

    removeData 刪除 data 設置的屬性

    data() 方法也能讀取寫在標簽上的 H5 標準自定義屬性

    三個方法存儲內容

    attr 設置的自定義屬性存儲在標簽身上

    prop 設置的自定義屬性存儲在元素對象里面

    data 設置的自定義屬性存儲在元素對象里面單獨開辟的一個對象

    六 元素樣式操作

    css()

    一個讀寫的屬性

    不同操作需要 傳遞 不同的參數

    css('樣式名稱')

    css('width')

    獲取元素的樣式值, 不管是行內樣式還是非行內樣式都能獲取

    css('樣式名稱', '樣式的值')

    css('width', '200px')

    設置元素的樣式值, 元素集合能獲取多少個元素就置多少個元素

    設置的時候, 所有的單位都可以不寫, 默認添加 px為單位

    css(對象)

    css({ width: 100, 不寫單位默認是 px height: '200px', opacity: 0.5 })

    批量設置 css 樣式

    給元素集合里面的所有元素, 批量設置樣式

    七 綁定事件
  14. on()方法是專門用來綁定事件

    jQuery 里面通用的事件綁定方式

    不同操作 傳遞 不同參數

    on方法的各種參數描述

    on('事件類型', 事件處理函數)

    給元素集合內所有的元素綁定一個事件

    // 給 $('li') 獲取到的所有元素綁定一個點擊事件

        // $('li').on('click', function () {

        //   console.log('我被點擊了')

        // })



    on('事件類型', '事件委托', 事件處理函數)

    把 事件委托 位置的元素的事件 委托給了前面元素合

        // 給所有的 li 標簽設置事件委托, 委托給了 ul

        // $('ul').on('click', 'li', function () {

        //   console.log('我被點擊了, 事件委托')

        // })



    on('事件類型', 復雜數據類型, 事件處理函數)

    給每一個元素綁定一個事件, 復雜數據類型是發(fā)事件時候傳遞的參數

     //   每一個 li 點擊的時候, 都能得到中間那個對象

        //   就是事件對象了面

        // $('li').on('click', { name: 'Jack', age: 18 }, function (e) {

        //   console.log('我被點擊了, li')

        //   console.log(e)

        // })

    1

    2

    3

    4

    5

    6

    on('事件類型', '事件委托', 任意數據類型, 件處函數)

    做一個事件委托的形式, 第三個參數位置的數據

    是觸發(fā)事件的時候, 可以傳遞進去的數據

    on(對象)

    給一個元素綁定多個事件的方式 不能傳參數

     // $('ul').on({

        //   click: function () { console.log('點擊事件') },

        //   mouseover: function () { console.log('移入事件') },

        //   mouseout: function () { console.log('移出事件') }

        // })


  15. one() 方法是專門用來綁定一個只能執(zhí)行一次的方法

    傳遞的參數個數和意義 于 on 方法一摸一樣

    綁定上的事件只能執(zhí)行一次
  16. off() 方法是專門用來解綁一個元素的事件的

    使用方式

    off('事件類型') : 給該事件類型的所有事件處理函數解綁

    off('事件類型', 事件處理函數) : 解綁指定事件處理函數

    注意:on 和 one 綁定的事件它都能移除
  17. trigger() 方法是專門用來觸發(fā)事件的方法

    不通過點擊, 通過代碼把事件觸發(fā)了

    trigger('事件類型') : 把該元素的事件給觸發(fā)了
  18. hover()

    jQuery 里面唯一一個很特殊的事件函數

    表示一個鼠標懸停動作

    只有一個使用方式

    hover(鼠標移入的時候觸發(fā), 鼠標移出的時候觸發(fā))

     // hover 事件

        //   如果你只傳遞一個函數, 那么移入移出都觸發(fā)這一個函數

        $('ul')

          .hover(

            function () { console.log('鼠標移入') },

            function () { console.log('鼠標移出') }

          )


  19. 常用事件

    jQuery 把一些常用事件直接做成了函數



    click()

    mouseover()

    . . . . . .

    直接使用就可以了



    使用 click 舉一個例子



    click(事件處理函數)

    click(參數, 事件處理函數)

    參數: 觸發(fā)事件的時候傳遞到事件里面的數據

        // 常用事件

        // 給 ul 綁定了一個點擊事件

        // $('ul').click([1, 2, 3, 4, true], function (e) {

        //   console.log('你好 世界')

        //   console.log(e)

        // })

    1

    2

    3

    4

    5

    6

    八 節(jié)點操作
  20. 創(chuàng)建節(jié)點

    對應原生 js 里面的 createElement()

    $('html 格式的文本')

    // 創(chuàng)建一個 div 元素

        console.log($('<div>我是一個創(chuàng)建出來的節(jié)點</div>'))

    1

    2
  21. 插入節(jié)點

    對應原生 js 里面的 appendChild()

    內部插入

    放在頁面元素的子元素位置, 放在末尾

    頁面元素.append(要插入的元素)

    要插入的元素.appendTo(頁面元素)

    放在頁面元素的子元素位置, 放在最前

    頁面元素.prepend(要插入的元素)

    要插入的元素.prependTo(頁面元素)

    外部插入

    放在頁面元素的下一個兄弟元素位置

    頁面元素.after(要插入的元素)

    要插入的元素.insertAfter(頁面元素)

    放在頁面元素的上一個兄弟元素位置

    頁面元素.before(要插入的元素)

    要插入的元素.insertBefore(頁面元素)
  22. 刪除節(jié)點

    對應原生 js 里面的 removeChild()

    頁面元素.empty() -> 把自己變成空標簽,將所有子元素移除

    頁面元素.remove() -> 把自己移除

    沒有刪除某一個子節(jié)點的方法,因為 jQuery 的選擇器的強大,直接找到要刪除的節(jié)點, remove()
  23. 替換節(jié)點

    對應原生 js 里面的 replaceChild()

    頁面元素.replaceWith(替換元素)

    替換元素.replaceAll(頁面元素)
  24. 克隆節(jié)點

    對應原生 js 里面的 cloneNode()

    元素.clone()

    兩個參數的值為 true或false

    第一個參數: 自己的事件是否克隆

    第二個參數: 子節(jié)點的事件是否克隆

    如果第一個參數的值為false,那么第二個參數不起作用,沒有意義。

    不管你是否傳遞參數, 都會把所有后代元素都克隆下來

    元素 + 文本內容 + 屬性 + 行內樣式

    參數只決定是否克隆元素身上的事件

    九 獲取元素尺寸

    尺寸: 元素的占地面積

    width 和 height

    padding

    border

    margin

    三套方法, 四種使用方式

    這些方法都是不考慮盒模型的狀態(tài)(不管是什么型, 都是固定區(qū)域)

    width() 和 height()

    獲取元素的 內容 區(qū)域的尺寸

    innerWidth() 和 innerHeight()

    獲取元素的 內容 + padding 區(qū)域的尺寸

    outerWidth() 和 outerHeight()

    獲取元素的 內容 + padding + border 區(qū)域的尺寸

    outerWidth(true) 和 outerHeight(true)

    獲取元素的 內容 + padding + border + margin 區(qū)域的尺寸

    十 獲取元素位置
  25. offset()

    offset: 偏移量

    是一個讀寫的屬性

    讀取

    不傳遞參數就是讀取

    讀到的元素相對于頁面的位置關系

    返回值是一個對象 { left: xxx, top: xxx }

    書寫

    傳遞一個對象就是寫入 { left: xxx, top: xxx }

    注意: 絕對寫入

    不管你本身和頁面的尺寸是什么樣,寫多少就是多少
  26. position()

    postition: 定位

    只讀的方法

    讀取:

    元素相對于定位父級的位置關系

    得到的也是一個對象 { left: xxx, top: xxx }

    如果你寫的是 right 或者 bottom, 會自動計算成 left 和 top 值給你

    十一 獲取卷去的尺寸(頁面滾動條)

    scrollTop()

    原生 js 里面 document.documentElement.scrollTop

    讀寫的方法

    不傳遞參數的時候就是獲取卷去的高度

    傳遞一個參數就是設置卷去的高度

    scrollLeft()

    原生 js 里面 document.documentElement.scrollLeft

    讀寫的方法

    不傳遞參數的時候就是獲取卷去的寬度

    傳遞一個參數的時候就是設置卷去的寬度

    十二 jQuery中的函數

    ready() 事件

    類似于 window.onload 事件,但是有所不同

    window.onload 會在頁面所有資源加載行

    ready() 會在頁面 html 結構加載完畢后執(zhí)行

    也叫做 jQuery 的入口函數

    有一個簡寫的形式 $(function () {})

    each() 方法

    類似于 forEach(), 遍歷數組的

    jQuery 的元素集合, 是一個 jQuery 數組, 不是一個數組, 不能使用 forEach()

    forEach語法: forEach(function (item, index) {})

    each語法:each(function (index, item) {})

    比較少用到, 因為 jQuery 隱式迭代 自動遍歷

    十三 jQuery中的動畫

    讓元素出現不同的移動, 改變

    transition -> 過渡動畫

    animation -> 幀動畫

    標準動畫

    show() 顯示元素

    語法: show(時間, 運動曲線, 運動結束的函數)

    hide() 隱藏元素

    語法: hide(時間, 運動曲線, 運動結束的函數)

    toggle() 改變元素顯示或隱藏(如果顯示就隱藏,如果隱藏就顯示)

    語法: toggle(時間, 運動曲線, 運動結束的函數)

    三個方法的參數都可以選填,不需要每個都填寫

    折疊動畫

    slideDown() 下滑顯示

    語法: slideDown(時間, 運動曲線, 運動結束的函數)

    slideUp() 上滑隱藏

    語法: slideUp(時間, 運動曲線, 運動結束的函數)

    slideToggle() 切換滑動和隱藏

    語法: slideToggle(時間, 運動曲線, 運動結束的函數)

    漸隱漸顯動畫

    實質是透明的opacity的變化

    fadeIn() 逐漸顯示

    fadeIn(時間, 運動曲線, 運動結束的函數)

    fadeOut() 逐漸消失

    fadeOut(時間, 運動曲線, 運動結束的函數)

    fadeToggle() 切換顯示和消失

    fadeToggle(時間, 運動曲線, 運動結束的函數)

    以上三個方法的參數,均有默認值

    fadeTo() 設置元素透明度變?yōu)槟阒付ǖ臄底?br />
    fadeTo(時間, 你指定的透明度, 運動曲線, 運動結束的函數)

    綜合動畫

    animate()

    基本上大部分的 css 樣式都可以動畫

    transform 不行, 顏色不行

    語法: animate({}, 時間, 運動曲線, 運動結束的函數)

    { }里面就寫你要運動的 css 屬性,默認單位為px

    停止動畫

    讓當前的動畫結束

    因為 jQuery 的動畫你一直點擊,就會一直觸發(fā)。即使不再點擊讓事件發(fā)生,還是會把沒執(zhí)行完的動畫執(zhí)行完畢。

    你點擊 10 次, 他就會觸發(fā) 10 次, 直到 10 次全都完畢才結束

    stop()

    當這個函數觸發(fā)的時候, 就會讓運動立刻停下來

    你運動到哪一個位置了就停止在哪一個位置

    finish()

    當這個函數觸發(fā)的時候, 就會讓運動立刻停下來

    不管你運動到了哪一個位置, 瞬間到達運動完成位置

    十四 jQuery發(fā)送ajax請求

    jQuery 里面幫我們封裝好了幾個方法

    專門用來發(fā)送 ajax 請求的

    $.get() -> 專門用來發(fā)送 get 請求的

    $.post() -> 專門用來發(fā)送 post 請求的

    $.ajax() ->

    發(fā)送什么請求都可以(get, post, put, delete)

    并且還可以發(fā)送一個 jsonp 請求

    jQuery 發(fā)送一個 GET 請求

    語法: $.get(請求地址, 需要攜帶到后端的參數, 成功的回調函數, 期望后端返回的數據類型)

    請求地址: 你要請求的后端接口地址(必填)

    攜帶參數: 你需要給后端傳遞的參數

    可以是一個固定格式的字符串 ‘key=value&key=value’

    也可以是一個對象 { a: 100, b: 200 }

    成功回調: 當請求成功的時候會執(zhí)行的函數

    期望數據類型: 就是你是不是需要 jQuery 幫你解析響應體

日歷

鏈接

個人資料

藍藍設計的小編 http://bouu.cn

存檔