jQuery 基礎(chǔ)操作

jQuery 能做什么?

jQuery is a fast, small, and feature-rich JavaScript library. It makes things like HTML document traversal and manipulation, event handling, animation, and Ajax much simpler with an easy-to-use API that works across a multitude of browsers.
jQuery是一個快速,小巧,功能豐富的 JavaScript 庫。 它使諸如 HTML 文檔遍歷和操縱,事件處理,動畫和 Ajax 等事情變得簡單得多,而且易于使用的 API 可以在多種瀏覽器中使用。

  • 選擇網(wǎng)頁元素
  • 改變結(jié)果集
  • 元素的操作:取值和賦值
  • 元素的操作:移動
  • 元素的操作:復(fù)制、刪除和創(chuàng)建
  • 工具方法
  • 事件操作
  • 特殊效果
  • AJAX

jQuery 對象和 DOM 原生對象有什么區(qū)別?如何轉(zhuǎn)化?

  • 區(qū)別

    • jQuery 對象是通過對 DOM 對象封裝后產(chǎn)生的對象,jQuery 對象只能使用 jQuery 里面的方法,不能使用 DOM 中的方法
    • DOM 對象是 JavaScript 固有的對象,DOM 對象可以使用 JavaScript 原生方法,不可以使用 jQuery 中的方法
  • 轉(zhuǎn)換

    • jQuery 對象轉(zhuǎn)換為 DOM 對象可以通過類數(shù)組下標的獲取方式或者 get 方法獲取指定 index 的 DOM 對象。
      $('div')[2];
      $('div').eq(2);
      $('div')get();
      
    • DOM 對象轉(zhuǎn)換為 jQuery 對象可以使用 $()將 DOM 對象包裹起來既可以獲取到一個 jQuery 對象

jQuery中如何綁定事件?bind、unbinddelegate、live、on、off都有什么作用?推薦使用哪種?使用on綁定事件使用事件代理的寫法?

  • jQuery 中 通過 on 方法綁定事件,通過 off 方法卸載事件

    • bind 為一個元素綁定一個事件處理程序
    • unbind 從元素上刪除一個以前附加事件處理程序
    • delegate 為所有匹配選擇器(selector參數(shù))的元素綁定一個或多個事件處理函數(shù),基于一個指定的根元素的子集,匹配的元素包括那些目前已經(jīng)匹配到的元素,也包括那些今后可能匹配到的元素
    • live 附加一個事件處理器到匹配目前選擇器的所有元素,現(xiàn)在和未來
    • on 在選定的元素上綁定一個或多個事件處理函數(shù)
    • off 移除一個事件處理函數(shù)
  • 推薦使用on 方法綁定事件, off 方法卸載事件

  • 使用on綁定事件使用事件代理的寫法

    $('.box ul').on('click', 'li', function(){
      // Do something
    })
    

jQuery 如何展示/隱藏元素?

  • 通過設(shè)置 CSS 來實現(xiàn)

    var $h1 = $('h1');
    $h1.css('display','none')
    
  • 通過設(shè)置 class 來實現(xiàn)

    // CSS 部分
    .class {
      display: none;
    }
    // JS 部分
    var $h1 = $('h1');
    $h1.addClass('class');
    $h1.removeClass('class');
    
  • 通過 jQuery 動畫來實現(xiàn)
    var $h1 = $('h1');
    $h1.hide();  // 隱藏
    $h1.show();  // 顯示
    $h1.toggle(); // 切換隱藏/顯示
    

jQuery 動畫如何使用?

  • 四個參數(shù)

    • duration 動畫持續(xù)時長,單位毫秒,默認400ms;
    • easing 過渡使用哪種緩動函數(shù),jQuery 自身提供 linearswing;
    • complete 在動畫完成時執(zhí)行的函數(shù);
    • opacity 不透明度,1為不透明,0為完全透明;
  • 基礎(chǔ)用法

    • 顯示元素
      .show([duration ] [, easing ] [, complete ])
    • 隱藏元素
      .hide([duration ] [, easing ] [, complete ])
    • 切換隱藏或顯示
      .toggle([duration ] [,easing ] [,complete ])
  • 漸變

    • 淡入顯示
      .fadeIn( [duration ] [, easing ] [, complete ] )

    • 淡出隱藏
      .fadeOut( [duration ] [, easing ] [, complete ] )

    • 調(diào)整匹配元素的透明度,方法通過匹配元素的不透明度做動畫效果
      .fadeTo( duration, opacity [, easing ] [, complete ] )

    • 通過匹配的元素的不透明度動畫,來顯示或隱藏它們,方法執(zhí)行匹配元素的不透明度動畫。當被可見元素調(diào)用時,元素不透明度一旦達到0,display 樣式屬性設(shè)置為 none ,所以元素不再影響頁面的布局。
      .fadeToggle( [duration ] [, easing ] [, complete ] )

  • 滑動

    • 用滑動動畫顯示一個匹配元素,方法將給匹配元素的高度的動畫,這會導(dǎo)致頁面的下面部分滑下去,彌補了顯示的方式
      .slideDown( [duration ] [, easing ] [, complete ] )
    • 用滑動動畫隱藏一個匹配元素,方法將給匹配元素的高度的動畫,這會導(dǎo)致頁面的下面部分滑上去,當一個隱藏動畫后,高度值達到0的時候,display 樣式屬性被設(shè)置為 none,以確保該元素不再影響頁面布局。
      .slideUp( [duration ] [, easing ] [, complete ] )
    • 用滑動動畫顯示或隱藏一個匹配元素
      .slideToggle( [duration ] [, easing ] [, complete ] )
      • 用滑動動畫顯示或隱藏一個匹配元素,方法將給匹配元素的高度的動畫,這會導(dǎo)致頁面中,在這個元素下面的內(nèi)容往下或往上滑。display屬性值保存在jQuery的數(shù)據(jù)緩存中,所以display可以方便以后可以恢復(fù)到其初始值。

      • 如果一個元素的display屬性值為inline,然后是隱藏和顯示,這個元素將再次顯示inline。當一個隱藏動畫后,高度值達到0的時候,display 樣式屬性被設(shè)置為none,以確保該元素不再影響頁面布局。

  • 自定義動畫
    .animate( properties [, duration ] [, easing ] [, complete ] )
    properties 是一個 CSS 屬性和值的對象,動畫將根據(jù)這組對象移動。
    例子:

    $('#clickme').click(function() {
      $('#book').animate({
        opacity: 0.25,
        left: '+=50',
        height: 'toggle'
      }, 5000, function() {
        // Animation complete.
      });
    });
    
  • 停止動畫

    • 清除動畫隊列中未執(zhí)行的動畫
      .clearQueue( [queueName ] )
    • 停止當前動畫,并清除動畫隊列中所有未完成的動畫,最終展示動畫隊列最后一幀的最終狀態(tài)
      .finish( [queue ] )
    • 停止當前正在運行的動畫
      .stop( [clearQueue ] [, jumpToEnd ] )
      • clearQueue(default: false)
      • jumpToEnd(default: false)

如何設(shè)置和獲取元素內(nèi)部 HTML 內(nèi)容?如何設(shè)置和獲取元素內(nèi)部文本?

  • 設(shè)置和獲取內(nèi)部 HTML 內(nèi)容
    .html([string])
    這是一個讀寫兩用的方法,用于獲取/修改元素的 innerHTML

    1. 當沒有傳遞參數(shù)的時候,返回元素的 innerHTML
    2. 當傳遞了一個 string 參數(shù)的時候,修改元素的 innerHTML 為參數(shù)值
     $('div').html();
     $('div').html(`123`);
    
  • 設(shè)置和獲取元素內(nèi)部文本
    .text([string])
    這是一個讀寫兩用的方法,用于獲取/修改元素的 innerText

    1. 當沒有傳遞參數(shù)的時候,返回元素的 innerText
    2. 當傳遞了一個 string 參數(shù)的時候,修改元素的 innerText 為參數(shù)值
     $('div').text();
     $('div').text(`123`);
    

如何設(shè)置和獲取表單用戶輸入或者選擇的內(nèi)容?如何設(shè)置和獲取元素屬性?

  • 設(shè)置和獲取表單用戶輸入或者選擇的內(nèi)容
    .val([value])
    這是一個讀寫雙用的方法,用來處理 input 的 value,當方法沒有參數(shù)的時候返回 input 的 value 值,當傳遞了一個參數(shù)的時候,方法修改 input 的 value 值為參數(shù)值

    $('input').val()
    $('input').val()
    
  • 設(shè)置和獲取元素屬性

    • 獲取元素特定屬性的值
      .attr(attributeName)

    • 為元素屬性賦值
      .attr(attributeName,value) / .attr(attributesJson) / .attr( attributeName, function(index, attr) )

    • 為匹配的元素集合中的每個元素中移除一個屬性(attribute)
      .removeAttr()

題目8

點擊查看

題目9

點擊查看

題目10

點擊查看

題目11

點擊查看

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 題目1: jQuery 能做什么? 選擇網(wǎng)頁元素 改變結(jié)果集 元素的操作:取值和賦值 元素的操作:移動 元素的操作...
    cheneyzhangch閱讀 469評論 0 1
  • 1、 jQuery 能做什么? jquery是一個豐富的js庫,內(nèi)部對js的很多復(fù)雜的方法進行了封裝和加工,比如j...
    zh_yang閱讀 1,510評論 6 13
  • 1.說說庫和框架的區(qū)別? 庫主要是封裝了某些函數(shù)的集合??蚣芤彩?。使用庫是指,你的代碼決定什么時候從庫中調(diào)用一個特...
    墨月千樓閱讀 476評論 0 2
  • 1.說說庫和框架的區(qū)別? 庫:是一個數(shù)據(jù)倉庫,里面放了各種可以利用的API,由于庫的內(nèi)部已經(jīng)做了各種底層的封裝和各...
    Rising_suns閱讀 213評論 0 1
  • 前兩天黃哥回老家,在家待了兩天,給我留下最大印象的是家鄉(xiāng)的變化很大,很多地方都變了樣,小時候經(jīng)常玩的地方早已今非昔...
    小兵黃道明閱讀 466評論 0 0

友情鏈接更多精彩內(nèi)容